是否可以将类型信息提供给VS Code linter以获取JavaScript文件?我有一个JavaScript文件和一个Hangfire
文件,我希望使用此.d.ts
文件解析JavaScript文件的类型错误。那可能吗?如果在VS Code中无法直接使用,是否可以使用其他工具?
添加示例:
.d.ts
答案 0 :(得分:3)
通常,您需要在项目的根目录中创建一个jsconfig.json
file,内容为:
{
"compilerOptions": {},
"exclude": [
"node_modules"
]
}
此文件告诉VS Code将所有js文件(和d.ts文件)视为同一项目的一部分。
但是,似乎TypeScript不会将d.ts文件中f
的类型声明与js文件中f
的实际声明合并。如果您注释掉实现,则会得到f
的正确类型和预期错误:
// @ts-check
//function f(x) { return x * 2; }
f('Not a number'); // This is an error
但除此之外,f
的类型为function(x: any): number
。
这对我来说似乎很意外,我已经开启了一个新问题来跟踪此问题:https://github.com/Microsoft/TypeScript/issues
此外,如果您只使用JavaScript,则可以始终使用jsdoc注释添加类型信息:
// @ts-check
/**
* @param {number} x
* @return {number}
*/
function f(x) { return x * 2; }
f('Not a number'); // This is an error