我正在学习打字稿但我在尝试理解一些事情时遇到了一些问题。
我看过这段代码:
module Games {
((): void => {
alert("");
);
})();
}
但是当符合javascript时,如果我将其更改为下面的结果,我会得到相同的结果:
module Games {
alert("");
})();
}
我有没有理由在第一个例子中编写类似的内容,或者只是代码不好。
答案 0 :(得分:0)
在您的示例中,没有理由这样做。
更一般地说,设置函数会创建一个本地范围,允许您使用其中的变量,而模块的其余部分无法访问它。这降低了模块不同部分中变量覆盖彼此的风险,因为它们共享一个名称。
答案 1 :(得分:0)
首先从这个工作示例开始......
module Games {
((): void => {
alert("");
})();
}
当您将TypeScript编译为JavaScript时,当前最终得到以下结果 - 模块变为并立即调用函数表达式...
var Games;
(function (Games) {
(function () {
alert("");
})();
})(Games || (Games = {}));
稍后当您定位ECMAScript的更高版本时,您可能会发现该模块实际上存在于JavaScript中(因为这只是对ECMAScript计划的功能的早期访问)。
除非你有充分的理由想要在模块中使用,否则我建议进行以下调整......
module Games {
}
((): void => {
alert("");
})();
我认为这将更好地适应未来的变化。