TypeScript 的两种声明文件写法的区别和根本意义
作者: Angus.Fenying < i.am.x.fenying@gmail.com > 日期: 2016-09-15 05:40 PM 我们知道 NPM 包可以有内建的 TS 声明文件,从而免去使用 typings 工具安装 TS 声明文件的操作。那既然可以有内建的声明文件,为何还需要额外安装呢?因为不是 所有人都在使用 TypeScript,很多 NPM 模块都是纯 JavaScript 编写的,其作者 没有太大的可能性为之编写模块声明文件。而且内建的声明文件有一定约束。 TypeScript 的 DefinitelyTyped 声明文件有两种写法,一种叫做 全局类型声明(Global Type Definition) ,另一个则是叫做 模块导出声明(External Module Definition) 。 External Module 一词源自 TypeScript 1.5 之前的 内部模块/外部模块 之说,而 1.5 之后内部模块变成了 namespace,外部模块直接化为模块, 不再有内外部模块之说。 所以这里将 External Module Definition 译为 模块导出声明 比较合适。 DefinitelyTyped 对此的说明是: 如果你的模块需要将新的名称引入全局命名空间,那么就应该使用全局声明。 如果你的模块无需将新的名称引入全局命名空间