【问题标题】:Is there a way to add type definition globally in TypeScript 2+?有没有办法在 TypeScript 2+ 中全局添加类型定义?
【发布时间】:2017-12-28 02:46:02
【问题描述】:

我有一堆简单的.ts 文件。 不是项目(即独立的 .ts 脚本)。 他们使用一些 node.js 功能。 TypeScript 和节点类型定义通过安装

npm install -g typescript
npm install -g @types/node

问题:在 Windows 上,我可以毫无问题地运行 tsc foo.ts。它将 .ts 转换为 .js 就好了。 但在 Ubuntu 16.04 上,它给了我error TS2304: Cannot find name 'require'error TS2304: Cannot find name 'process' 等。 即使将/// <reference types="node" /> 添加到foo.ts 的顶部或将--types node 切换到tsc,我也会得到error TS2688: Cannot find type definition file for 'node'

看起来在 Windows 上全局安装某些类型可以正常工作,但在 Ubuntu 上却不行,所以我假设这不是设计使然。 那么有没有办法在全球范围内安装它们?或者更准确地说:在 Ubuntu 上引用全局安装的类型定义?

【问题讨论】:

    标签: javascript node.js ubuntu typescript definitelytyped


    【解决方案1】:

    我找到了解决方案。我必须手动指定 typeRoots 并带有通向 npm 安装的全局包的路径。 像这样:tsc --typeRoots /usr/lib/node_modules/@types(您可以通过npm root -g获取系统的路径)。

    仍然不确定为什么它在没有任何特殊工作的情况下在 Windows 上查找它们而在 Ubuntu 上却没有。不知道这是否是一个错误,如果它是在哪个版本中。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-05-14
      • 2020-06-10
      • 1970-01-01
      • 2017-06-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多