【问题标题】:TypeScript namespaces to be discontinued?TypeScript 命名空间要停止使用?
【发布时间】:2020-10-23 07:33:48
【问题描述】:

最近,我从开发人员那里读到了很多建议不要再使用命名空间,而是改用现代模块处理。我正在使用 TypeScript 向初学者教授编程,命名空间在这里非常有价值,因为人们可以在单个目录和子目录中长时间处理多个分配,而无需处理多个编译器配置文件和模块导出和导入.他们只是为任务定义一个命名空间,并在他们为它创建的文件中使用它。

所以我的问题是:有计划停止 TypeScript 中的命名空间吗?

【问题讨论】:

  • 问题似乎跑题了。此外,模块确实没有那么复杂,不需要多次配置。
  • 命名空间和模块从根本上解决了将代码分成离散块的相同问题。我不确定我是否真的看到命名空间比模块有什么好处。无论如何,你在这两种情况下都做同样的事情——你必须创建命名空间/模块,然后引用/导入它,这将允许你使用其中的项目。而不是/// <reference path="dir/Utils.ts" /> 你必须把import * as Utils from './dir/Utils' 然后Utils.foo() 工作相同。无论如何,这些模块是前进的方向,所以我认为不向学生传授这些模块没有任何价值。

标签: typescript namespaces


【解决方案1】:

所以我的问题是:是否有计划停止 TypeScript 中的命名空间?

可能不会。这是微软员工对另一个主题的评论,但似乎是一般性评论:

这不是 TS 团队的职位。我们没有计划在短期内弃用任何东西。 (source)

无论如何,ES6 模块系统是要走的路。我建议an article from Mozilla 将模块作为命名空间导入:

当你import * 时,导入的是一个模块命名空间对象。它的属性是模块的导出。

【讨论】:

猜你喜欢
  • 2015-03-05
  • 2017-07-25
  • 1970-01-01
  • 2018-05-29
  • 2018-01-05
  • 1970-01-01
  • 2019-03-27
  • 2010-11-03
相关资源
最近更新 更多