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

如何设置VSCode以内联显示typescript错误,typescript,visual-studio-code,Typescript,Visual Studio Code,我正在尝试将ES6项目迁移到typescript。这是我第一次尝试在NodeJS中编写typescript模块 到目前为止,它在欧洲似乎工作得更好 我已经使用命令行tsc编译了它,但我不确定如何在代码编辑器中显示错误和intellisense 在一个目录中,我有如下所示的两个文件。当它编译它时,正如预期的那样抛出一个编译错误:提供的参数与cal的任何签名都不匹配 l目标。。这很好 但是VSCode在编辑器中没有显示任何错误,即使我故意犯了语法错误,比如去掉括号,或者像这样的类型错误。如何让VSC

我正在尝试将ES6项目迁移到typescript。这是我第一次尝试在NodeJS中编写typescript模块

到目前为止,它在欧洲似乎工作得更好

我已经使用命令行
tsc
编译了它,但我不确定如何在代码编辑器中显示错误和intellisense

在一个目录中,我有如下所示的两个文件。当它编译它时,正如预期的那样抛出一个编译错误:
提供的参数与cal的任何签名都不匹配
l目标。
。这很好

但是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';
  }
}
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);
  });
});
然后,我尝试编写简单的规范来测试工作流:

验证错误。规范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';
  }
}
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);
  });
});
此处编辑: 我仍在努力解决这个问题-我已经在
tasks.json中设置了
tsc
以自动运行此作业:

{
  // 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
设置:

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

C:/temp
  index.ts
  tsconfig.json
索引

let x: number;
x = "foo";
tsconfig.json

{ }
下面是显示
x
中内联错误的屏幕截图


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

对于我来说,通过在VSCode设置中将类型脚本验证设置为true,问题得以解决:

"typescript.validate.enable": true,

我以前在我的工作区设置中关闭了它,但我忘记了

因此,请确保在用户设置、工作区设置或文件夹设置中再次检查此设置是否未设置为false

例如,我试图获取工作的规则是检查未定义的变量,当我将validate设置为true时,这些变量立即被修复


我刚刚关闭并重新启动了VS代码,它开始像以前一样显示typescript错误


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

我遇到了这个问题,通过在.vscode目录中的本地设置.json文件中添加
“typescript.validate.enable”:true
解决了这个问题。我的设置告诉我,typescript验证器已为VS代码全局启用,但在添加本地设置文件之前,我无法看到内联TS错误。

您的项目(打开的目录)中是否有
tsconfig.json
文件?我已经有了。很有趣。我想知道为什么我的不起作用,我从某个地方复制了
tsconfig
,所以可能是版本问题或其他问题。不管怎样,我最终还是在昨天用tsc问题解决程序让它工作了——至少我认为这就是它工作的原因。这似乎是一个bug,在第一次编译时,它没有在VS代码中列出错误,但是如果我在监视模式下更改了一个文件,那么错误将按预期显示。因此,这可能只是我的设置中的一些组合中的错误。您也可以发出“Restart TS Server”命令来重新启动显示错误的部分。“我过去在工作区设置中关闭了此选项,但忘记了!”。哈哈哈,天哪。。。我要回我的5个小时。