对于内部模块,使用模块加载器,例如RequireJS / SystemJS / Webpack / Browserify,这样您就不必为/// <reference path="..." /> >internal 模块,您将不再需要使用module 命名空间。
如果你使用 RequireJS,你需要使用参数 -m amd 运行 tsc,对于 Browserify -m commonjs,SystemJS 和 Webpack 支持 amd 和 commonjs 样式(以及其他样式),但是有一个更简单的解决方案使用tsconfig.json 文件(继续阅读),您不必添加此参数。
对于外部 TypeScript 模块;通常是 d.ts 文件(外部 JS 库的类型定义,又名 Typings),通过 Node 安装 typings 模块包管理器 - NPM。
typings 帮助您管理项目中的类型,并将所有 /// <reference path="..." /> 行合并到一个 d.ts 文件中。
对于内部和外部模块,您可以使用tsconfig.json 文件来消除对任何/// <reference path="..." /> 行的需要。
Webstorm 11(目前处于开发阶段,在早期访问程序 EAP 下分发)具有对 tsconfig.json 文件的内置支持。
对于 Webstorm 10,您可以使用 this solution。
如果您选择不使用 tsconfig.json 而仍然使用 typings 来管理您的类型,以及诸如 RequireJS 之类的模块加载器,则必须添加-m [...] 命令行选项,并在您的内部 .ts 文件顶部包含 单 行 /// <reference path="path/typings/something.d.ts" />,此 .d .ts 文件将包含您的项目所依赖的所有外部类型。
tsconfig.json
将它放在项目的根目录中。
它的内容可能看起来像这样:
{
"compilerOptions": {
"module": "commonjs",
"sourceMap": true,
"target": "es5",
"experimentalDecorators": true
},
"files": [
"typings/something.d.ts",
"main.ts"
]
}
注意,您不必在files: 键下列出所有.ts 文件,tsc 自动知道它应该包含所提及的任何文件的依赖项(递归)在files:下。
网络风暴 11
配置 webstorm 以使用 tsconfig.json:
tl;博士
如果可以,最好(恕我直言)执行以下操作:
- 使用模块加载器 (RequireJS/SystemJS/Browserify/Webpack)。
- 使用
typings 模块管理您的 d.ts 文件(打字)。
- 将其全部包装在 tsconfig.json 文件中(配置 webstorm 以使用它)。
之后,您可以删除所有 /// <reference path="..." /> 行。