TypeScript是不是为类使用了揭示模块模式?

时间:2013-04-01 16:33:05

标签: typescript

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

})();

1 个答案:

答案 0 :(得分:8)

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中创建