TypeScript 中的命名空间关键字

Ole*_*lik 3 c# namespaces keyword typescript

试图找出namespaceTypeScript中关键字的含义?

这是他们最近进行的一些改组以namespace代替使用module

https://github.com/Microsoft/TypeScript/commit/224e7630ea17c4547e97f85634f446b877955a67

在没有命名空间规范的情况下,使语言看起来像 C# 的重命名似乎毫无意义。

或者两者之间有什么微妙的区别?namespacesorta一词意味着使用相同名称的多个声明之间的共享范围/空间。这是正确的直觉吗?

Dav*_*ret 5

您可以在namespace关键字issue 中了解它,但基本思想是区分内部 ( namespace) 和外部 ( module) 模块。

为了更好地与#2159 中建议的 ES6 模块保持一致,此 PR 引入了一个新的命名空间关键字,作为声明以前称为“内部模块”的首选方式。我们的术语变化如下:

  • 内部模块成为Namespace
  • 外部模块成为Module

为了向后兼容,命名空间仍然可以用旧的方式(使用 module 关键字)声明,并且没有现有的代码被这个改变破坏。我们可以考虑引入一个编译器选项,禁止使用module关键字来声明命名空间。

来源