【发布时间】:2016-09-04 07:00:04
【问题描述】:
我已经使用 typescript 几个月了,但我还没有理解命名空间和模块的区别。
我知道在它们被命名为 internal 和 external 模块之前,我可以从其他文件中导入类。那么真正的区别是什么?
【问题讨论】:
-
据我了解,命名空间过去被称为“模块”,并且在 ECMAScript 提出模块标准之前就出现在 TypeScript 中。现在 ES 有一个模块标准,TS 将它们的“模块”重命名为“命名空间”并添加了对 ES 模块的支持。我认为没有任何真正的理由继续使用命名空间。
-
阅读@Nitzan Tomer 的“命名空间和模块”让我更加困惑。那么,你认为我必须只使用模块吗?
-
我不知道你想做什么,所以我无法回答你应该使用什么。我认为该页面以非常直接的方式解释了差异。如果您需要动态加载模块(使用依赖项)并且使用模块加载器(例如需要),那么您需要使用模块。但是,如果您想拥有具有结构的全局变量,那么您应该使用命名空间。
-
有趣的是,仍然没有一个简单易懂的差异解释和一个应该使用的指南。
标签: module typescript namespaces