Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to setup VSCode to show typescript error inline

Tags:

I'm trying to migrate an ES6 project to typescript. This is my first attempt at writing a typescript module in NodeJS.

It seems to work better in Angular-CLI so far.

I've got it compiling using command line tsc, but I'm not sure how to display errors and intellisense in the code editor?

In a directory I have the two files shown below. When it compiles it, as expected throws a compile error: Supplied parameters do not match any signature of cal l target.. This is fine.

But VSCode is not showing any errors in the editor, even if I make a deliberate syntax error like taking out a bracket, or type errors like this one. How do I get VSCode to show inline syntax or compiler errors in the editor for .ts files?

validation-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';   } } 

Then I'm trying to write simple spec to test out the workflow:

validation-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);   }); }); 

Edited Here:

I'm still plugging away at this - I've setup tsc to run automatically with this job in 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 } 

I suspect that if the errors were reported properly using $tsc-watch, the error would probably also show up in the editor. When I run the task I get output like:

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. 

But there are no problems reported in the Problems view - even though clearly there's a compiler issue.

Got the $tsc-watch setting from this page of the docs: https://code.visualstudio.com/docs/editor/tasks

like image 701
Richard G Avatar asked May 11 '17 07:05

Richard G


People also ask

How do you show error in VS Code?

Right-click on the corresponding entry line and select Show Error Help from the context menu, or click on the hyperlinked error code value in the Code column of the Error List.

How do you make Visual Studio code check entire project for errors?

Show activity on this post. Then pressing Shift + Ctrl + B (or Shift + Command + B in macOS) will check the entire project for problems and they will be reported in your "problems" panel.


2 Answers

For me the problem was resolved by setting Typescript validation to true in VSCode settings:

"typescript.validate.enable": true, 

I had turned this off in my workspace settings in the past and forgot!

So make sure to double check that this setting is not set to false in your user settings, workspace settings or folder settings.

enter image description here

For instance the rule I was trying to get work was checking for undefined variables which was immediately fixed when I set validate to true.

enter image description here

like image 192
protoEvangelion Avatar answered Oct 10 '22 05:10

protoEvangelion


I ran aground with this issue, managed to solve it by adding "typescript.validate.enable": true to my local settings.json file in the .vscode directory. My settings tell me that the typescript validator is enabled for VS code globally, but I wasn't able to see inline TS errors until I added the local settings file.

like image 45
JimblyJambles Avatar answered Oct 10 '22 05:10

JimblyJambles