我使用TypeScript来键入check(不发出)JavaScript项目。在JavaScript项目中,我使用JSDoc来简化TypeScript的工作,但我也使用第三方包,它们提供自己的打字法(而不是@types
),而TypeScript看不到这些包,因为它们在页面上只使用了一个简单的script
标记。
我不想手工为库对window
的贡献编写打字符,因为包已经自带打字符了,TypeScript就是看不到它们,我想知道是否有办法让它知道它们。
我不能使用import
或/// <reference
,因为源文件是JavaScript文件,而不是TypeScript文件,我必须坚持JavaScript允许的内容。
我不能使用@types
,因为打字员直接来自包裹,而不是@types
。我可能npm install
这些包,但TypeScript无法知道项目引用了它们(没有导入等),所以我认为需要有一个编译器设置让它知道。
我已经尝试过使用script
对TypeScript在运行时获得的依赖项的NPM包进行npm install
,并设置typeRoots
:
"compilerOptions": {
"typeRoots": [
"node_modules/package"
]
}
但这并没有任何效果。
我也试着配置"typeAcquisition"来完成我的出价,如下所示:
{
"typeAcquisition": {
"enable": true,
"include": [
"package"
]
}
}
这也不起作用,这是可以理解的,因为我认为这只是启用了@types
的自动提取,而在我的情况下,打字员是实际包的一部分,就像我之前所说的那样。
我如何让TypeScript意识到我的JavaScript项目——它以一种从源代码看不到的方式对引用包进行类型检查,以便加载它们的类型,并识别和检查包提供的全局对象?
尝试compilerOptions.types
。它包含要包含在编译中的类型声明文件。
"types": [
"package"
],