Appearance
如何定义JavaScript模块
JavaScript 有很长的历史,有不同的方式来处理模块化的代码。TypeScript 从2012年开始出现,已经实现了对许多这些格式的支持,但随着时间的推移,社区和JavaScript 规范已经趋向于一种名为ES模块(或ES6模块)的格式。你可能知道它是 import/export 语法。
ES Modules 在2015年被加入到 JavaScript 规范中,到2020年,在大多数网络浏览器和 JavaScript 运行时中都有广泛的支持。
为了突出重点,本手册将涵盖 ES Modules 及其流行的前驱 CommonJS module.exports = 语法。
在 TypeScript 中,就像在 ECMAScript 2015 中一样,任何包含顶级 import 或 export 的文件都被认为是一个模块。
相反,一个没有任何顶级导入或导出声明的文件被视为一个脚本,其内容可在全局范围内使用(因此也可用于模块)。
模块在自己的范围内执行,而不是在全局范围内。这意味着在模块中声明的变量、函数、类等在模块外是不可见的,除非它们被明确地用某种导出形式导出。相反,要使用从不同模块导出的变量、函数、类、接口等,必须使用导入的形式将其导入。