我已经使用了几个月的 typescript ,但我还没有理解命名空间和模块的区别。
我知道在将它们命名为内部和外部模块之前,但我可以从其他文件中导入类。那么真正的区别是什么?
答案 0 :(得分:4)
正如TS-handbook中所述 有两种模块:"内部" &安培; "外部&#34 ;.内部模块中的代码用Typescript和" external"编写。是用Javascript编写的。
为了与新的ECMAScript 2015术语保持一致,他们决定将其重命名如下:
所以:
示例:强>
假设您有公共命名空间序列NamespaceA.NamespaceB.NamespaceC
,它公开了公共类ClassD
。
您可以通过这种方式全局访问所有这些:
window.NamespaceA
window.NamespaceA.NamespaceB
window.NamespaceA.NamespaceB.NamespaceC
window.NamespaceA.NamespaceB.NamespaceC.ClassD
不说window.NamespaceA = NamespaceA
如果您使用模块,则必须使用" magic"上述
答案 1 :(得分:3)
当您不希望输出的Javascript代码使用模块加载器时,命名空间是TypeScript的结构化代码方式。
您可以在手册here中找到有关命名空间与模块的更多信息。