4

TypeScript はクラスの公開モジュール パターンを使用していませんか? このコードとは異なる結果を期待していました。

class Test {

    private privateProperty: any;

    public publicProperty: any;     
}

これを生成します:

var Test = (function () {
    function Test() { }
    return Test;
})();

私は次のようなものを期待していました:

var test = (function(){
    var privateProperty;
    var publicProperty;

    return {
        publicProperty: publicProperty;
    };

})();
4

1 に答える 1

9

RMP は、クラスベースの設計には適していません。moduleあなたが望むことをします:

module myMod {
    var x = 31;
    export var y = x + 15;
}

生成:

var myMod;
(function (myMod) {
    var x = 31;
    myMod.y = x + 15;
})(myMod || (myMod = {}));

ここでの顕著な特徴:

  • プライベートはクロージャーでキャプチャされます
  • パブリック メンバーは、オブジェクトの独自のプロパティとして表示されます
  • オブジェクトはIIFEで作成されます
于 2013-04-01T17:33:07.223 に答える