在Typescript1.5 中,内部模块称作命名空间,外部模块成为模块
一、什么是模块?
模块就是一个或一组功能模块。
- 模块在其自身的作用域里执行,而不是在全局作用域里。意味着,模块中的变量、函数、类等在模块外部无法访问,除非通过export形式导出。相应的,如果想使用其他模块中的变量、函数、类、接口等必须使用import导入
- 模块是自声明的。两个模块之间的关系通过文件级别上使用imports和exports建立
- 模块通过模块加载器去导入其他模块。模块加载器的作用是在执行的时候查找并执行这个模块的所有依赖。Javascript的模块加载器是服务于node.js的CommonJS和服务于web应用的Require.js
二、导出模块
- 导出声明:任何声明都可以使用export关键字导出
- 导出语句:在文件中使用export导出对应的部分,同时可以重命名
- 默认导出:每个模块都可以有且仅有一个default导出
三、导入模块
模块的导入操作与导出一样简单。 可以使用以下import
形式之一来导入其它模块中的导出内容。
四、创建模块最佳实践
- 尽可能在顶层导出
- 如果仅导出单个class或function,使用export default
- 明确列出导入的名字
五、命名空间
命名空间是将不同文件或位置的代码通过命名空间约束在一起