【问题标题】:Visual Studio Code - TypeScript type checking - recognize external objects in JavaScript projectVisual Studio Code - TypeScript 类型检查 - 识别 JavaScript 项目中的外部对象
【发布时间】:2017-09-20 05:50:33
【问题描述】:

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

“javascript.implicitProjectConfig.checkJs”:真

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

$('body').addClass('something'); // 找不到名字'$'

MyCustomObject.doSomething(); // 找不到名称“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 包有关。这不是这里的情况。我需要设置一个自定义定义文件

【问题讨论】:

标签: javascript typescript visual-studio-code


【解决方案1】:

您可以声明全局类型,如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 使其能够识别类型。

【讨论】:

  • 谢谢,已经在根文件夹中创建了一个 index.d.ts 文件,内容为declare global { var $: any; var MyCustomObject: any; } export {}; 更改 index.d.ts 文件后,我不得不重新启动 VSCode 以使其识别类型
  • 您可以将我的评论添加到您的答案中以正确格式化代码 sn-p 吗?之后我会接受你的回答
  • 谢谢你!找了好久!
猜你喜欢
  • 2021-09-02
  • 2023-03-23
  • 2012-03-21
  • 2012-06-25
  • 2018-09-10
  • 1970-01-01
  • 1970-01-01
  • 2018-07-20
  • 2020-04-01
相关资源
最近更新 更多