如何设置VSCode以显示内联的打字稿错误

时间:2017-05-11 07:13:43

标签: typescript visual-studio-code

我试图将ES6项目迁移到打字稿。这是我第一次尝试在NodeJS中编写打字稿模块。

到目前为止,它似乎在Angular-CLI中工作得更好。

我已经使用命令行tsc进行了编译,但我不确定如何在代码编辑器中显示错误和智能感知?

在目录中我有两个文件如下所示。当它编译它时,正如预期的那样抛出一个编译错误:Supplied parameters do not match any signature of cal l target.。这可以。

但VSCode在编辑器中没有显示任何错误,即使我做了一个故意的语法错误,比如取出一个括号,或输入类似这样的错误。如何让VSCode在.ts文件的编辑器中显示内联语法或编译器错误?

验证-error.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';
  }
}

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

验证-error.spec.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

4 个答案:

答案 0 :(得分:5)

对我来说,此问题已通过在VSCode设置中将 Typescript验证设置为true来解决:

"typescript.validate.enable": true,

我过去在工作空间设置中将其关闭,然后忘记了!

因此,请确保再次检查您的用户设置,工作区设置或文件夹设置中该设置未设置为false。

enter image description here

例如,我试图上班的规则是检查未定义的变量,当我将validate设置为true时,该变量将立即修复。

enter image description here

答案 1 :(得分:1)

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

C:/temp
  index.ts
  tsconfig.json

index.ts

let x: number;
x = "foo";

tsconfig.json

{ }

以下是显示x中内联错误的屏幕截图。

enter image description here

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

答案 2 :(得分:1)

我刚刚关闭并重新启动了VS Code,它开始像以前一样显示打字稿错误。

如果这不起作用,建议您重新启动计算机系统。

答案 3 :(得分:0)

我对此问题搁浅,设法通过将"typescript.validate.enable": true添加到.vscode目录中的本地settings.json文件中来解决此问题。我的设置告诉我,打字稿验证器已全局启用VS代码,但直到添加本地设置文件,我才能看到内联TS错误。