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

标签 javascript typescript visual-studio-code

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

"javascript.implicitProjectConfig.checkJs": true

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

$('body').addClass('something'); // cannot find name '$'

MyCustomObject.doSomething(); // cannot find name 'MyCustomObject'

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

更新:

不是 Enabling implicit type checking for Javascript in VS Code results in "Cannot find name 'require'" error 的重复项.

已经看到该票证,它仅与 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/

相关文章:

javascript - 具有两个参数的 Angular 函数具有错误 : [$parse:syntax]

javascript - typescript 对象解构被 ESLint no-unused-vars 规则捕获

github - 如何在 github 和 2FA 中使用 Visual Studio 代码

javascript - 强制 div 填充浏览器宽度

javascript - jQuery 日期选择器在 ASP.Net MVC4 中无法正常工作

angular - 异步自定义验证导致控制台错误 : "Cannot read property ' required' of null at Object. eval [as updateDirectives]”

jquery - 是否可以通过创建 Typescript 的子类来扩展 JQuery?

c# - 如何禁用消息 "You may only use the Microsoft .NET Core Debugger..."?

visual-studio-code - 如何从VS Code跳转到node_modules中文件的定义

javascript - 如何访问和处理嵌套对象,数组或JSON?