使用 JSDoc 使 TypeScript 无需导入即可查看参考库

Make TypeScript with JSDoc see reference libraries without import

我正在使用 TypeScript 对 JavaScript 项目进行类型检查(不发出)。在 JavaScript 项目中,我使用 JSDoc 来简化 TypeScript 的工作,但我也在使用第三方包,它们提供自己的类型(而不是 @types)并且 TypeScript 看不到这些包,因为它们仅在页面上使用一个简单的 script 标记。

我不想为库对 window 的贡献手动编写类型,因为这些包已经带有它们自己的类型,TypeScript 只是看不到它们,我想知道是否有让它知道它们的方法。

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

我不能使用 @types,因为类型直接来自包,而不是 @types。我可能 npm install 包,但 TypeScript 无法知道项目引用了它们(没有导入等)所以我假设需要一个编译器设置让它知道。

我已经尝试 npm install 使用 script 并设置 typeRoots:

来获取 TypeScript 在运行时获取的依赖项的 NPM 包
"compilerOptions": {
  "typeRoots": [
    "node_modules/package"
  ]
}

但这没有任何效果。

我也试过配置 "typeAcquisition" 来执行我的命令:

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

这也不起作用,这是可以理解的,因为我认为这只会启用 @types 的自动获取,而在我的情况下,如我之前所说,打字是实际包的一部分。

我如何让 TypeScript 知道我的 JavaScript 项目它以一种从源代码中看不到的方式对引用包进行类型检查,以便它加载它们的类型,并且包提供的全局对象被识别和类型检查过?

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

"types": [
  "package"
],