使带有JSDoc的TypeScript无需导入即可查看参考库

时间:2018-12-26 08:45:33

标签: typescript jsdoc

我正在使用TypeScript对JavaScript项目进行类型检查(不发出)。在JavaScript项目中,我使用JSDoc简化了TypeScript的工作,但我也在使用3rd party软件包,它们提供了自己的类型(不是@types),并且TypeScript看不到这些软件包,因为它们被引用了。在页面上仅使用简单的script标签。

我不想为库对window所做的贡献手动输入类型,因为软件包已经带有它们自己的类型,TypeScript看不到它们,我想知道是否有办法让他们知道它们。

我不能使用import/// <reference,因为源文件是JavaScript文件,而不是TypeScript文件,并且我必须遵守JavaScript允许的内容。

我不能使用@types,因为键入的内容直接来自软件包,而不是@types。我可能会npm install个软件包,但是TypeScript无法知道项目引用了它们(没有导入等),因此我认为需要有一个编译器设置来告知它。

我尝试使用npm install script并设置typeRoots "compilerOptions": { "typeRoots": [ "node_modules/package" ] } 来设置TypeScript在运行时获取的依赖项的NPM包:

{
  "typeAcquisition": {
    "enable": true,
    "include": [
      "package"
    ]
  }
}

但这没有任何作用。

我还尝试过配置“ typeAcquisition”来进行这样的出价:

@types

这也不起作用,这是可以理解的,因为我认为这能自动获取{{1}},而在我看来,打字是我之前所说的实际包的一部分。

如何使TypeScript知道我的JavaScript项目,它以一种无法从源中看到的方式对引用包进行类型检查,从而加载它们的类型,并识别和提供由包提供的全局对象并进行类型检查?

1 个答案:

答案 0 :(得分:1)

尝试compilerOptions.types。它包含要包含在编译中的类型声明文件

"types": [
  "package"
],