2017-08-25 2 views
1

Intellisense kann nicht für .ts-Dateien arbeiten.vscode intellisense node.js funktioniert für .js-Dateien - nicht .ts Dateien

test.js

var http = require('http'); 
http.[intellisense available] 

test.ts

var http = require('http'); 
http.[no suggestions] 

Erscheint nicht index.d.ts

Hier ist tsconfig.json Lesen werden:

{ 
    "compileOnSave": true, 
    "compilerOptions": { 
    "target": "es5", 
    "module": "commonjs", 
    "sourceMap": true, 
    "watch": true 
    } 
} 

Irgendwelche Vorschläge. Wirklich wollen Sie Typoskript verwenden, aber die Hinweise beim Lernen Knoten benötigen. Verwenden Sie vorzugsweise kein Javascript.

Danke.

+0

Stellen Sie sicher, dass Sie den TypeScript-Compiler von 'npm install installiert haben -g typescript' – Amogh

+0

[This] (https://code.visualstudio.com/docs/languages/typescript#_tsconfigjson) könnte helfen – Amogh

Antwort

1

JavaScript und TypeScript intellisense von VS Code für Module von Knoten und Drittanbietern werden von Typisierungsdateien (d.ts Dateien) unterstützt.

In JavaScript-Code, wir automatically laden Sie diese Typings, weil sie nur für Werkzeugunterstützung verwendet werden. Wenn wir beispielsweise require('http') in einer js-Datei sehen, installieren wir automatisch die Knotentypen. Deshalb erhalten Sie die Vorschläge in diesem Fall

In TypScript-Code müssen die Typings-Dateien manuell verwaltet werden, da sie Teil des Kompilierungsprozesses sind. Um beispielsweise die Knotentypen zu installieren, führen Sie einfach npm install --save-dev @types/node aus. Hier sind weitere Informationen über @types: https://blogs.msdn.microsoft.com/typescript/2016/06/15/the-future-of-declaration-files/

Ich vermute, Sie müssen nur die Knoten Typings installieren, um richtige Intellisense zu erhalten.

1

Lernkurve.

Für eine Js-Datei:

var http = require('http'); 

für eine .ts-Datei:

import http = require('http'); 

Die Transpiler wird schreiben: var http = ...

Der "Import" statt "var" bekommt intellisense zu arbeiten. Ein Rechtsklick auf "Gehe zur Definition" funktioniert.

Problem gelöst.

Verwandte Themen