如何在VSCode中禁用TypeScript警告?

104

目前我不使用TypeScript,仅使用带有Babel的ES6。
我没有在node_modules中安装TypeScript。

每次打开工作区时,我都会收到来自VSCode的特定警告。

\node_modules\typescript\lib 没有指向有效的tsserver安装。 回到捆绑的TypeScript版本。

我该如何摆脱这些警告?或者我应该更改编辑器以感到放心?


我仍然收到ts6133 no-unused-vars的警告,即使我有// eslint-disable-line。vscode在保存时会删除该行。我已经安装了eslint和eslint vscode扩展程序,但没有安装tslint扩展程序。我的用户设置: "eslint.codeActionsOnSave.mode": "all", "breadcrumbs.enabled": true, "javascript.validate.enable": false, "typescript.validate.enable": false, "javascript.format.enable": false, "typescript.format.enable": false, "javascript.implicitProjectConfig.checkJs": false, "javascript.suggestionActions.enabled": false,请帮忙! - barakbd
注意:根据您的需求,您可能只想完全禁用内置扩展。有关更多信息,请参见我的新答案 - Andrew
7个回答

196

在 VS Code 中,可以通过这两个设置关闭 TypeScript 和 JavaScript 验证:

"typescript.validate.enable": false,
"javascript.validate.enable": false,

6
谢谢,根据您的回答,我已经更改了TypeScript的一些设置,但是特定的警告仍未消失。我认为唯一的解决方法是在本地的node_modules中安装TypeScript。即使我不使用它,我也可以这样做,但我担心以后会出现其他警告 :-) - stefan2410
10
@JohannesRieken 为什么两个都要?我们只关心禁用 TypeScript 不是吗?你可以通过说明第二个语句的作用来改进你的解决方案,因为它给出了禁用 JavaScript 验证的说明,而我们只想禁用 TypeScript。 - Lemuel Uhuru
9
由于某种原因,我不得不禁用 JavaScript 验证以禁用 TypeScript 验证。这非常令人困惑。 - Chris
8
禁用全局内置的JS+TypeScript验证对于所有项目(甚至是TypeScript项目)来说都是一种遗憾,仅仅因为它无法在“每个项目”基础上关闭或者不能智能地不对非TypeScript文件进行类型验证。 - simbolo
4
这些值应该放在哪里? - Kingamere
显示剩余10条评论

41
  1. 打开命令面板:CTRL + SHIFT + P

  2. 打开文件 settings.json:

enter image description here

  1. 添加以下 2 行代码:

    "typescript.validate.enable": false,
    "javascript.validate.enable": false,
    

该错误几乎总是由于在处理 TypeScript 项目时,不小心将 typescript 编译器或 tsdk 库的路径设置在用户偏好设置中而非工作区偏好设置中,然后切换到 JavaScript 项目而导致。如果任何人读到这篇文章并遇到了这个问题,请首先尝试 Bernard 的方法,仅在它不起作用时禁用验证。您可能想知道您的 JavaScript 是否有 bug。 :) - Parker Ault

15

根据这里的说明,现在你可以在VSCode中禁用内置扩展。在左侧的扩展选项卡中(Ctrl+Shift+X),搜索@builtin+JavaScript/TypeScript,然后点击一个扩展旁边的小齿轮图标,再点击禁用

我禁用了TypeScript和JavaScript语言特性(有JavaScript语言基础扩展)以及TypeScript语言基础


2
我也尝试过这个方法,但它同时禁用了 TS 的定义文件和导入导航功能,而我并不想关闭它们。 - Mike Young

14

我遇到了类似的问题。我的用户设置中typescript.tsdk的设置不正确:

"typescript.tsdk": null

要解决此问题,您可以将位置设置为有效的位置:

"typescript.tsdk": "/usr/local/lib/node_modules/typescript/lib",

如果您没有使用Typescript,可以从设置中删除该行。

如果您需要更多详细信息,请查看VSCode文档,其非常简明易懂。


3
这是正确的答案。很遗憾,很多人会看到被接受的答案并关闭他们的验证。 - Parker Ault

8

在我的情况下,这是因为有一个使用了 vscode.typescript-language-features 扩展的扩展程序引起的。

我仍然希望显示 JavaScript 错误,所以 "javascript.validate.enable": false, 不是一个选项。

通过禁用使用了 @builtin 扩展的 "VueDX" 扩展程序,解决了该问题并仍然显示 JavaScript 语法错误。

您可以通过搜索 @builtin typescript 来查找所有 TypeScript 扩展程序。


3
好的回答,但我遇到了一种情况,我只想关闭某些在TypeScript环境中使用的未移植原始JavaScript的TypeScript验证。我们使用eslint时没有捕获到与TypeScript验证器相近数量的错误,所以为了保留对“真实” *.ts 的验证能力,只有关闭特定文件的TypeScript验证才很重要
很容易做到,结果是来自bobbyhadz.com

Use the // @ts-nocheck comment to disable type checking for an entire file in TypeScript.

...

// @ts-nocheck

console.log('no errors' / 0);
console.log('no errors' / 0);

TypeScript文档中提供的(它展示了如何变得更加细致):

You can skip checking some files by adding a // @ts-nocheck comment to files.

TypeScript may offer you errors which you disagree with, in those cases you can ignore errors on specific lines by adding // @ts-ignore or // @ts-expect-error on the preceding line.

// @ts-check
/** @type {number} */
var x;
 
x = 0; // OK
// @ts-expect-error
x = false; // Not OK

2
谢谢,这正是我在寻找的! - undefined

2
如果您想修改设置,请打开设置选项(在我撰写本文时有一个新的设置编辑器),并搜索您想要修改的设置。我试图更改typescript验证,但由于文档是只读的,我无法更改。如果您将鼠标悬停在设置上,您会在设置左侧看到一个笔。如果您右键单击笔,它将为您提供true或false选项,就像我针对"typescript.validate.enable"一样。我将其更改为false,这反过来,VS代码复制了代码到屏幕右侧,并使用新值。简而言之,左侧是settings.json文件。右侧是user-settings.json。您只能修改用户设置,用户设置可以覆盖主settings.json文件中的任何设置。-Kf

enter image description here


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接