7

次のコードがあります。

///<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);
        }
    };
}

=> void でこれを宣言する必要がある理由を教えてもらえますか?

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

javascript 関数から returntype を行う方法について少し混乱していると思います。時々私は見ます:jQueryと今私は見ています=> void。2つの違いは何ですか?

4

2 に答える 2

5

あなたの例では、両方ともコロンを使用して宣言されています...

半分に分けましょう!

型宣言なし...

interface JQuery {
    addTemplateSetup
}

型宣言は…

: (func: Function, priority: bool) =>void;

isの代わりに単語を使用すると、次の:ようになります。

「addTemplateSetUp」という名前のプロパティ: 特定の型の 2 つのパラメーターを受け取り、値を返さない関数

次に示すのは、実際には同一の 2 つのインターフェイスの例ですが、一方は を使用し、もう一方は使用して=>いません。どちらも TypeScript では同じように扱われるため、実際には開発者の好みに依存します。

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

interface Identical {
    addTemplateSetup(func: Function, priority: bool): void;
}

class ImplementsEither implements JQuery {
    addTemplateSetup (func: Function, priority: bool) : void {

    }
}

=>ほぼ英語で読みたい場合は、スタイル宣言を使用できます。

インターフェイスを実装のように見せたい場合は、2 番目のスタイルを使用できます。

于 2012-11-01T09:36:19.060 に答える
0

関数が返すものに関する情報です。jQuery オブジェクト (JQuery インターフェイスを使用) を返しますか、それとも何も返さない void 関数ですか?

$("#someId").addTemplateSetup();

あなたのサンプルでは何も返さないので、「無効」が正しいでしょう。しかし、JavaScript 関数で代わりに "this" を返した場合は、よくあることですが、jQuery の連鎖性を維持するために、return => JQuery; と宣言する必要があります。

$("#someId").addTemplateSetup().Show();
于 2012-11-01T08:54:57.880 に答える