我正在使用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项目,它以一种无法从源中看到的方式对引用包进行类型检查,从而加载它们的类型,并识别和提供由包提供的全局对象并进行类型检查?
答案 0 :(得分:1)
尝试compilerOptions.types
。它包含要包含在编译中的类型声明文件。
"types": [
"package"
],