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(

この同じファイルに、インテリセンスがなく、typescript が追加したばかりの addTemplateSetup プロトタイプを認識していないようです。

これは正しい方法ですか、それとも addTemplateSetup の定義などを JQueryStatic 定義ファイルに追加してから含める必要がありますか?

4

1 に答える 1

1

Typescript が文句を言わないようにするには、何らかの方法で宣言する必要があります。最も簡単なのは、any として宣言することです。

interface JQuery {
    addTemplateSetup: any;
}

ただし、最高の IntelliSense サポートを得るには、パラメーターの型に関する情報も追加します。

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