Visual Studio代码 - JavaScript文件的类型提示

Enn*_*ael 6 javascript visual-studio-code

是否可以将类型信息提供给VS Code linter以获取JavaScript文件?我有一个JavaScript文件和一个.d.ts文件,我希望使用此.d.ts文件解析JavaScript文件的类型错误.那可能吗?如果不能直接在VS Code中使用,是否可以使用其他工具?

要添加示例:

// file.d.ts
declare function f(x: number): number;

// file.js
function f(x) { return x * 2; }
f('Not a number'); // This should be an error
Run Code Online (Sandbox Code Playgroud)

Mat*_*ner 5

一般来说,您需要在项目的根目录下创建一个包含以下内容的jsconfig.json文件:

{
    "compilerOptions": {},
    "exclude": [
        "node_modules"
    ]
}
Run Code Online (Sandbox Code Playgroud)

该文件告诉 VS Code 将所有 js 文件(和 d.ts 文件)视为同一项目的一部分。

然而,TypeScript 似乎没有将fd.ts 文件中的类型声明与fjs 文件中的实际声明合并。如果注释掉实现,您将得到正确的类型f和预期的错误:

// @ts-check

//function f(x) { return x * 2; }

f('Not a number'); // This is an error 
Run Code Online (Sandbox Code Playgroud)

但除此之外,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 
Run Code Online (Sandbox Code Playgroud)