【发布时间】:2018-12-27 05:23:36
【问题描述】:
我正在使用 TypeScript 对 JavaScript 项目进行类型检查(不发出)。在 JavaScript 项目中,我使用 JSDoc 来简化 TypeScript 的工作,但我也使用 3rd 方包,它们提供自己的类型(不是@types),TypeScript 看不到这些包,因为它们仅被称为使用页面上一个简单的script 标签。
我不想为库对window 的贡献手动编写类型,因为这些包已经带有自己的类型,TypeScript 只是看不到它们,我想知道是否有办法做到这一点了解他们。
我不能使用 import 或 /// <reference,因为源文件是 JavaScript 文件,而不是 TypeScript 文件,我必须坚持 JavaScript 允许的内容。
我不能使用@types,因为打字直接来自包,而不是@types。我可能会 npm install 包,但 TypeScript 无法知道项目引用它们(没有导入等),所以我认为需要有一个编译器设置让它知道。
我已经尝试npm installing 使用 script 并设置 typeRoots 的 TypeScript 在运行时获取的依赖项的 NPM 包:
"compilerOptions": {
"typeRoots": [
"node_modules/package"
]
}
但这没有任何效果。
我也尝试过配置“typeAcquisition”来像这样进行竞标:
{
"typeAcquisition": {
"enable": true,
"include": [
"package"
]
}
}
这也不起作用,这是可以理解的,因为我认为这只会自动获取 @types,而在我的情况下,键入是我之前所说的实际包的一部分。
如何让 TypeScript 知道我的 JavaScript 项目,它以无法从源代码中看到的方式对引用包进行类型检查,以便加载它们的类型,并且包提供的全局对象被识别和类型检查?
【问题讨论】:
标签: typescript jsdoc