gpt4 book ai didi

module - typescript 中的命名空间和模块有什么区别

转载 作者:搜寻专家 更新时间:2023-10-30 20:32:01 24 4
gpt4 key购买 nike

我已经使用了几个月的 typescript,但我还不明白命名空间和模块的区别。

我知道在它们被命名为internalexternal 模块之前,但是我可以从其他文件导入类。那么真正的区别是什么?

最佳答案

TS-handbook 中所述有两种模块:“内部”和“外部”。内部模块中的代码是用 Typescript 编写的,“外部”是用 Javascript 编写的。

为了与新的ECMAScript 2015保持一致的术语,他们决定将它们重命名如下:

  1. “内部模块”现在是“命名空间”。
  2. “外部模块”现在只是“模块”,以便与 ECMAScript 保持一致

所以:

  • 您编写代码的方式不同
  • 当使用模块时,类不会暴露在全局范围内,同时使用命名空间:

示例:

假设您有公共(public)命名空间序列 NamespaceA.NamespaceB.NamespaceC,它公开了公共(public)类 ClassD。您可以通过这种方式全局访问所有这些:

window.NamespaceA
window.NamespaceA.NamespaceB
window.NamespaceA.NamespaceB.NamespaceC
window.NamespaceA.NamespaceB.NamespaceC.ClassD

不用说 window.NamespaceA = NamespaceA

如果你使用模块,你必须使用上面的“魔法”

关于module - typescript 中的命名空间和模块有什么区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37119215/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com