我是否需要使用TypeScript在JQueryStatic定义文件中声明所有JQuery原型?

时间:2012-11-01 04:21:17

标签: javascript jquery typescript

我有以下代码:

///<reference path="../typescript/jquery.d.ts" />

function addThemePrototypes() {
    var templateSetup = new Array();
    $.fn.addTemplateSetup = function(func, prioritary)
    {
        if (prioritary)
        {
            templateSetup.unshift(func);
        }
        else
        {
            templateSetup.push(func);
        }
    };
}

当我尝试添加以下内容时:

  $('a').addTemplateSetup(

在同一个文件中,我注意到没有intellisense,而且typescript似乎不知道我刚刚添加的addTemplateSetup原型。

这是它正常工作的方式还是我总是需要将类似addTemplateSetup的定义添加到JQueryStatic定义文件然后包含它?

1 个答案:

答案 0 :(得分:1)

您需要以某种方式声明它以使Typescript不会抱怨,最简单的方法是将其声明为:

interface JQuery {
    addTemplateSetup: any;
}

但要获得最佳的智能感知支持,请添加有关参数类型的信息:

interface JQuery {
    addTemplateSetup: (func: Function, priority: bool) =>void;
}