【问题标题】:WebStorm+Typescript: How to use without reference path?WebStorm+Typescript:如何在没有参考路径的情况下使用?
【发布时间】:2016-09-16 22:55:46
【问题描述】:

在 Visual Studio 中,可以使用内部模块而不必包含 /// <reference path="..." /> 标记。
如何在 WebStorm 10 中实现相同的功能?

另一个问题,如何让 WebStorm 将类型导入项目? WebStorm 10 将类型放在缓存文件夹中。

【问题讨论】:

  • 如果我的回答对您有所帮助,请考虑通过单击 ✔ 接受它,或者让我知道缺少什么。
  • 接受答案兄弟

标签: typescript webstorm


【解决方案1】:

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

对于外部 TypeScript 模块;通常是 d.ts 文件(外部 JS 库的类型定义,又名 Typings),通过 Node 安装 typings 模块包管理器 - NPM
typings 帮助您管理项目中的类型,并将所有 /// &lt;reference path="..." /&gt; 行合并到一个 d.ts 文件中。

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

Webstorm 11(目前处于开发阶段,在早期访问程序 EAP 下分发)具有对 tsconfig.json 文件的内置支持。
对于 Webstorm 10,您可以使用 this solution

如果您选择不使用 tsconfig.json 而仍然使用 typings 来管理您的类型,以及诸如 RequireJS 之类的模块加载器,则必须添加-m [...] 命令行选项,并在您的内部 .ts 文件顶部包含 /// &lt;reference path="path/typings/something.d.ts" /&gt;,此 .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 以使用它)。

之后,您可以删除所有 /// &lt;reference path="..." /&gt; 行。

【讨论】:

  • @shatal 这不是我的意思,你只需要在tsconfig.json 中包含 2 个打字稿文件:(1) tsd.d.ts 文件(所有类型的捆绑),(2) 你的主要打字稿文件(即 main.ts)。这足以让tsc 知道它也应该编译你的 main.ts 文件的所有依赖项。
  • @shatal 您实际上可以使用相对路径:},tsc 也知道如何处理这些,无论是在 tsconfig.json 中,还是在您的 @987654364 中调用 importrequire @ 文件。请参阅我在 tsconfig.json 中提供的示例。
  • @shatal 对于 gulp,您可以使用 gulp-tscgulp-typescript。请记住,对于将 typescript 文件转换为 js 之类的琐碎任务:配置 tsconfig.json 后,您只需运行 tsc 即可。如果您使用 webstorm,它会自动为您完成,无需运行任何东西。如果你在没有 webstorm 的情况下工作,你可以运行 tsc -w 它将在旅途中运行和编译,监控实时变化。
  • 由于 tsd 已被弃用(甚至官方网站也已关闭)我想声明,typings 在最新的 WebStorm 版本(2016.2.3)上运行良好。事实上,就在安装本地库之后(在我的例子中 lodash) 我可以很容易地在我的打字稿代码中使用它。使用 lodash 函数后在我的 mac 上按 alt + enter ,webstorm 将以下行添加到我的 app.ts 中: import _ = require("lodash");
  • @skiabox 谢谢,已相应更新。 typings 现在肯定比 tsd 更常见。
猜你喜欢
  • 2016-09-07
  • 1970-01-01
  • 2020-04-20
  • 2020-02-12
  • 2012-10-21
  • 2020-12-14
  • 2016-04-26
  • 1970-01-01
  • 2018-12-28
相关资源
最近更新 更多