我有一个具有提示功能的jQuery插件,该功能接受带有setPrompt作为唯一参数的callack函数:
代码如下:
obj.prompt(function(setPrompt) {
setPrompt(10);
});
是否可以将d.ts文件中的setPrompt参数强制设置为字符串,以便在传递10而没有向该回调添加用户添加类型时显示错误。
在我的d.ts文件中:
type setStringFunction = (value: string) => void;
type cmdPrompt = (setPrompt: setStringFunction) => void;
interface Cmd extends JQuery {
prompt(cmdPrompt): Cmd;
prompt(): cmdPrompt;
}
答案 0 :(得分:1)
您的代码已经实现了您想要的功能,只是有一个小错误,您指定了prompt(cmdPrompt)
,这意味着函数具有名为cmdPrompt
的参数,而不是类型为cmdPrompt
的参数。您只需要将其更改为param: cmdPrompt
即可正常使用
type setStringFunction = (value: string) => void;
type cmdPrompt = (setPrompt: setStringFunction) => void;
interface Cmd extends JQuery {
prompt(param: cmdPrompt): Cmd;
prompt(): cmdPrompt;
}
let obj!: Cmd;
obj.prompt(function(setPrompt) {
setPrompt(10); // error
});