WebStorm + Typescript:如何在没有参考路径的情况下使用?

Hao*_*Hao 16 webstorm typescript

在Visual Studio中,可以使用内部模块而无需包含/// <reference path="..." />标记.
如何在WebStorm 10中实现同样的目标?

另一个问题是,如何让WebStorm将打包输入项目?WebStorm 10将输入放在缓存文件夹中.

Alo*_*mir 23

对于内部模块,使用诸如RequireJS/SystemJS/Webpack/Browserify之类的模块加载器,它将使您不必/// <reference path="..." />内部模块编写代码,您将不再需要使用module 命名空间.
如果你使用RequireJS,你需要运行tsc参数-m amd,对于Browserify -m commonjs,SystemJS和Webpack支持两者amdcommonjs样式(以及其他),但是有一个更简单的解决方案使用tsconfig.json文件(继续阅读)你没有添加此参数.

对于外部 TypeScript模块; 通常d.ts文件(类型定义为外部JS库,又名分型),安装分型通过模块节点的包管理器- NPM.
分型可帮助您管理的分型在您的项目,所有集约/// <reference path="..." />线到一个单一d.ts的文件.

对于内部和外部模块,您可以使用tsconfig.json文件来消除对任何/// <reference path="..." />行的需要.

Webstorm 11(目前处于开发阶段,在早期访问程序EAP下分发)内置了对tsconfig.json文件的支持.
对于Webstorm 10,您可以使用此解决方案.

如果您选择不使用tsconfig.json同时仍然使用typings管理您的分型和模块加载,如RequireJS,你就必须添加-m [...] 命令行选项,并包括一个单一的线路/// <reference path="path/typings/something.d.ts" />上的内部顶部的.ts文件,此.d.ts文件将包含您的项目所依赖的所有外部类型.


tsconfig.json

将它放在项目的根目录中.
它的内容可能如下所示:

{
  "compilerOptions": {
    "module": "commonjs",
    "sourceMap": true,
    "target": "es5",
    "experimentalDecorators": true
  },
  "files": [
    "typings/something.d.ts",
    "main.ts"
  ]
}
Run Code Online (Sandbox Code Playgroud)

请注意,您不必列出密钥.ts下的所有文件files:,tsc自动知道它应该包含下面提到的任何文件的依赖项(递归)files:.


Webstorm 11

配置webstorm使用tsconfig.json:

在此输入图像描述


TL;博士

如果可以的话,最好(恕我直言)做以下事情:

  • 使用模块加载器(RequireJS/SystemJS/Browserify/Webpack).
  • 管理你的d.ts文件(分型与)typings模块.
  • 将它全部包装在tsconfig.json文件中(配置webstorm以使用它).

之后,您可以删除所有/// <reference path="..." />行.