NPM包的类型 · TypeScript中文网 · TypeScript

NPM包的类型 · TypeScript中文网 · TypeScript

TypeScript编译器处理Node模块名时使用的是Node.js模块解析算法。

TypeScript也可以同时加载与npm包绑在一起的类型声明文件。 编译通过下面的规则来查找

"foo"模块的类型信息:

尝试加载相应代码包目录下package.json文件(node_modules/foo/)。如果存在,从"typings"字段里读取类型文件的路径。比如,在下面的package.json里,编译器会认为类型文件位于node_modules/foo/lib/foo.d.ts。

{

"name": "foo",

"author": "Vandelay Industries",

"version": "1.0.0",

"main": "./lib/foo.js",

"typings": "./lib/foo.d.ts"

}

尝试加载在相应代码包目录下的名字为index.d.ts的文件(node_modules/foo/) - 这个文件应该包含了这个代码包的类型信息。

解析模块的详细算法可以在这里找到。

你的定义文件应该

是.d.ts文件

写做外部模块

不包含///引用

基本的原理是类型文件不能引入新的可编译代码; 否则真正的实现文件就可能会在编译时被重盖。 另外,

加载类型信息不应该污染全局空间,当从同一个库的不同版本中引入潜在冲突的实体的时候。

相关阅读