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

Javascript 我是否需要使用TypeScript在JQueryStatic定义文件中声明所有JQuery原型?,javascript,jquery,typescript,Javascript,Jquery,Typescript,我有以下代码: ///<reference path="../typescript/jquery.d.ts" /> function addThemePrototypes() { var templateSetup = new Array(); $.fn.addTemplateSetup = function(func, prioritary) { if (prioritary) { templateS

我有以下代码:

///<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);
        }
    };
}
在同一个文件中,我注意到没有intellisense,typescript似乎不知道我刚才添加的addTemplateSetup原型


这是正确的工作方式吗?还是我总是需要将addTemplateSetup的定义添加到JQueryStatic定义文件中,然后将其包括在内?

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

interface JQuery {
    addTemplateSetup: any;
}
但要获得最佳intellisense支持,请同时添加有关参数类型的信息:

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

谢谢你的帮助。typescript是否不可能从文件中推断信息,或者如果在定义原型时向原型添加了参数类型,它是否只能推断信息?还有一个问题。我一直在声明如下接口JQuery{addTemplateSetup();}。这与您第一次使用:any的声明之间有什么区别吗?是的,您不需要显式地添加:any,如果没有声明类型,这是隐含的。通过添加()可以将其定义为一个函数(带有任何参数),这样就不仅仅是将其定义为:any。Typescript不知道jQuery js的内部结构。我想如果您将Jquery的一部分重写为Typescript,就可以自动从$.fn信息中找到信息。
interface JQuery {
    addTemplateSetup: (func: Function, priority: bool) =>void;
}