Visual Studio Code - TypeScript 类型检查 - 识别 JavaScript 项目中的外部对象

Szi*_*rdD 2 javascript typescript visual-studio-code

已使用全局设置在 VS Code 中的纯 JavaScript 项目中启用 TypeScript 检查

“javascript.implicitProjectConfig.checkJs”:true

类型检查有效,但对于每个外部/全局变量,它显示“找不到名称”错误:

$('body').addClass('某事'); // 找不到名称 '$'

MyCustomObject.doSomething(); // 找不到名称“MyCustomObject”

如何让 VS Code 识别这些全局变量?我认为这需要使用 jsconfig.json 中指定的自定义定义文件来完成,但无法使其工作。

更新:

与在 VS Code 中启用 JavaScript 的隐式类型检查不重复会导致“找不到名称‘require’”错误

已经看到该票证,它仅与 Node.js 项目相关,并且接受的答案与安装 NodeJS 的类型定义 npm 包有关。这里的情况并非如此。我需要设置一个自定义定义文件

nil*_*arp 5

您可以声明全局类型,如https://www.typescriptlang.org/docs/handbook/declaration-files/templates/global-modifying-module-d-ts.html中所示

保留声明的类型,any以便 tsc 不会抱怨不是函数或没有属性。

在根文件夹中创建一个index.d.ts文件,其中包含内容

declare global {
    var $: any;
    var MyCustomObject: any;
}
export {};
Run Code Online (Sandbox Code Playgroud)

更改index.d.ts 文件后,重新启动 VSCode 以使其识别类型。