2

我有以下代码:

///<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(

在同一个文件中,我注意到没有智能感知,打字稿似乎不知道我刚刚添加的 addTemplateSetup 原型。

这是它工作的正确方式还是我总是需要将诸如 addTemplateSetup 的定义之类的内容添加到 JQueryStatic 定义文件中然后包含它?

4

1 回答 1

1

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

interface JQuery {
    addTemplateSetup: any;
}

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

interface JQuery {
    addTemplateSetup: (func: Function, priority: bool) =>void;
}
于 2012-11-01T04:59:05.797 回答