我有一个以标准方式工作的jQuery插件:
$.fn.doSomething = function () {
//do something to each item in the list
}
在常规javascript中,我可以调用doSomething
,好像它实际上是jQuery的一部分:
$(selector).doSomething();
使用jquery.d.ts
引用的Typescript适用于jQuery,但对我的插件一无所知,所以我得到:
The property 'doSomething' does not exist on value of type 'JQuery'.
那么如何告诉TypeScript我添加的其他功能呢?
答案 0 :(得分:3)
你需要一个插件的打字定义文件。
这里有一些常见的库(通过nuget)https://github.com/borisyankov/DefinitelyTyped
您可能想要搜索谷歌以查看您的用户是否已制作。如果没有,你只需要自己制作。
例如,如果我希望能够$('#idOfElement').autosize();
我会创建一个包含以下代码的.d.ts文件:
interface JQuery {
autosize(): JQuery;
}
或者自动尺寸可能需要一些选项,在这种情况下你可以这样定义:
interface JQuery {
autosize(): JQuery;
autosize(options: autosizeOptions): JQuery;
}
interface autosizeOptions {
className?: string;
append?: string;
callback?: any;
}