如何让TypeScript与jQuery插件一起使用?

时间:2014-01-22 23:07:05

标签: jquery jquery-plugins typescript

我有一个以标准方式工作的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我添加的其他功能呢?

1 个答案:

答案 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;
}