已使用全局设置在 VS Code 中的纯 JavaScript 项目中启用 TypeScript 检查
"javascript.implicitProjectConfig.checkJs": true
类型检查有效,但对于每个外部/全局变量,它都会显示“找不到名称”错误:
$('body').addClass('something'); // cannot find name '$'
MyCustomObject.doSomething(); // cannot find name 'MyCustomObject'
如何让 VS Code 识别这些全局变量?我认为这需要使用 jsconfig.json 中指定的自定义定义文件来完成,但一直无法使其工作。
更新:
已经看到该票证,它仅与 Node.js 项目相关,并且接受的答案与安装 NodeJS 的类型定义 npm 包有关。这里的情况并非如此。我需要设置一个自定义定义文件
最佳答案
您可以声明全局类型,如 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 {};
更改index.d.ts文件后,重新启动VSCode以使其识别类型。
关于javascript - Visual Studio Code - TypeScript 类型检查 - 识别 JavaScript 项目中的外部对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46314185/