Typescript使用嵌套和立即调用函数编译代码

时间:2016-03-25 22:18:15

标签: javascript typescript

我试图了解以下原因:

我有

class User {
    wow:String = "xxx";
}

和TypeScript编译器将其编译为

var User = (function () {
    function User() {
        this.wow = "xxx";
    }
    return User;
}());

而不是

var User = function() {
    this.wow = "xxx";
};

使用嵌套的User构造函数和立即函数调用有什么好处?

1 个答案:

答案 0 :(得分:3)

可能有几个很好的理由,但我怀疑其中一个原因是如果你执行以下普通的旧JavaScript(通过TypeScript'编译器输出):

var john = new User();
console.log("John constructed with: " + john.constructor);

然后你得到,

John constructed with: function User() {
    this.wow = "xxx";
}

代替,

John constructed with: function() {
    this.wow = "xxx";
}

哪里有机会看到"用户" (构造函数的标识符)可以提供有用的提示,稍后调试某些内容,或等等。

' HTH,