Typescript--模块和命名空间

模块的概念

模块的概念:关于术语的一点说明。请务必注意一点,typescript1.5里术语名已经发生变化。内部模块现在叫做“命名空间”。外部模块现在简称为“模块”,模块在其自身的作用域里执行,而不是在全局作用域里执行。这意味着定义在一个模块里的变量,函数,类等在模块外部都是不可见的。除非能明确的使用export的形式之一导出他们,相反,如果想使用其他模块到处的变量,函数,类,接口的时候,就比如导入他们,可以用使用import的形式。

理解:
我们可以使用一些公共的功能单独抽离一个文件作为模块。
模块里的变量,函数,类,默认是私有的。如果哦我们要在外部访问模块里的数据(变量,函数,类),我们需要通过export暴露模块里的数据(变量,函数,类)。暴露后我们通过import引入模块就可以使用模块暴露出来的数据(变量,函数,类)了。

export

export default 默认导出
每个模块都可以有一个default导出,默认导出使用default关键字标记。并且一个模块只能有一个default导出,需要使用特殊形式来导出。

命名空间

在代码量较大的情况下,为了避免各种变量名相互冲突,可以将相似的函数,类,接口等放到命名空间中间。同java的包,.net的命名空间一样,typescript的命名空间可以将代码包裹起来,只对外暴露需要在外部访问的对象,命名空间内的对象通过export对外暴露。
命名空间和模块的区别:

  • 命名空间:内部模块,主要用于组织代码,避免命名冲突,命名空间用关键字namespace表示
  • 模块:ts的外部模块的简称,侧重代码的复用,一个模块里可能会有多个命名空间
  • 版权声明: 本博客所有文章除特别声明外,著作权归作者所有。转载请注明出处!
  • Copyrights © 2015-2022 Lee
  • 访问人数: | 浏览次数:

请我喝杯咖啡吧~

支付宝
微信