如何设置VSCode以内联方式显示typescript错误

41zrol4v  于 2022-11-26  发布在  TypeScript
关注(0)|答案(5)|浏览(350)

我正在尝试将一个ES6项目移植到typescript。这是我第一次尝试在NodeJS中编写typescript模块。
到目前为止,它在Angular-CLI中似乎工作得更好。
我已经使用命令行tsc编译了它,但是我不知道如何在代码编辑器中显示错误和智能感知。
在一个目录中,我有两个文件,如下所示。当它编译它时,如预期的那样抛出一个编译错误:Supplied parameters do not match any signature of cal l target.。这很好。
但是VSCode在编辑器中没有显示任何错误,即使我故意犯了一个语法错误,比如去掉了一个括号,或者像这样的类型错误。我如何让VSCode在编辑器中显示.ts文件的内联语法或编译器错误?

验证错误.ts

/**
 * Wrapper for a particular validation error.
 */
export class ValidationError extends Error {
  private type: string;

  constructor(error: any) {
    super(error);
    Error.captureStackTrace(this, this.constructor);
    this.message = error.message;
    this.type = 'ValidationError';
  }
}

然后,我尝试编写简单的规范来测试工作流:

验证错误规范ts

import { ValidationError } from './validation-error';
import * as should from 'should';

describe('Validation Error', () => {
  it('should create a new instance', () => {
    const instance = new ValidationError();
    should.exist(instance);
  });
});

此处编辑:

我仍在努力-我已经设置了tsc,使其在tasks.json中自动运行此作业:

{
  // See https://go.microsoft.com/fwlink/?LinkId=733558
  // for the documentation about the tasks.json format
  "taskName": "tsc",
  "command": "tsc",
  "isShellCommand": true,
  "args": ["-w", "-p", "."],
  "problemMatcher": "$tsc-watch",
  "echoCommand": true
}

我怀疑如果使用$tsc-watch正确地报告错误,那么这个错误可能也会出现在编辑器中。

running command$ tsc -w -p .
src/hello.ts(15,1): error TS2346: Supplied parameters do not match any signature of call target.
4:24:40 PM - Compilation complete. Watching for file changes.

但是在Problems视图中没有报告任何问题--尽管很明显存在编译器问题。
从文档的此页面获取$tsc-watch设置:https://code.visualstudio.com/docs/editor/tasks

hs1ihplo

hs1ihplo1#

对我来说,通过在VSCode设置中将Typescript validation设置为true,解决了这个问题:

"typescript.validate.enable": true,

我过去在我的工作区设置中关闭了这个功能,然后忘记了!
因此,请确保在您的用户设置、工作区设置或文件夹设置中仔细检查此设置是否设置为false。

例如,我尝试使用的规则是检查未定义的变量,当我将validate设置为true时,它立即得到了修复。

rslzwgfq

rslzwgfq2#

我遇到了这个问题,通过在.vscode目录下的本地settings.json文件中添加"typescript.validate.enable": true来解决它。我的设置告诉我,为VS代码全局启用了typescript验证器,但直到我添加了本地设置文件,我才能看到内联TS错误。

zd287kbt

zd287kbt3#

即使没有在本地或全局安装TypeScript,以下安装程序也会提供内联错误。

C:/temp
  index.ts
  tsconfig.json

index.ts

let x: number;
x = "foo";

tsconfig.json

{ }

下面是x中的内联错误的屏幕截图。

请尝试该设置并报告发生的情况。

lkaoscv7

lkaoscv74#

我刚刚关闭并重新启动了我的VS代码,它开始像以前一样显示typescript错误。
如果这不起作用,我建议重新启动您的计算机系统。

nkoocmlb

nkoocmlb5#

其他答案(大多数在2020年之前)对我不起作用。
根据Microsoft的VS Code库中的feature request,执行以下步骤:
1.在settings.json中添加:

"typescript.validate.enable": true,
"typescript.tsserver.experimental.enableProjectDiagnostics": true,

1.在tsconfig.json中添加:

"include": [
    "src",
    "global.d.ts",
  ],
"exclude": [
    "node_modules",
    "plugins",
    "public"
  ]

等待一段时间(或重新启动VS代码),以查看打开文件中显示的错误列表和问题面板中添加的错误列表。

相关问题