Ich beginne mit der Verwendung von TypeScript in einem Knotenprojekt, an dem ich in Visual Studio Code arbeite. Ich wollte die "Opt-In" -Strategie verfolgen, ähnlich wie Flow. Deshalb habe ich // @ts-check
oben in meine .js
Datei gesetzt, in der Hoffnung, TS für diese Datei zu aktivieren. Letztendlich möchte ich die gleiche Erfahrung mit "Flusen" wie Flow, daher habe ich das Plugin TSLint installiert, damit ich Intellisense-Warnungen / Fehler sehen kann.
Aber mit meiner Datei, die aussieht wie:
// @ts-check
module.exports = {
someMethod: (param: string): string => {
return param;
},
};
und meine tsconfig.json
Datei sieht aus wie ...
{
"compilerOptions": {
"target": "es2016",
"module": "commonjs",
"allowJs": true
}
}
Ich erhalte diesen Fehler: [js] 'types' can only be used in a .ts file.
wie unten im Bild gezeigt.
Ich habe diese Frage gesehen, die empfohlen hat, die Javascript-Validierung in vscode zu deaktivieren, aber dann werden mir keine TypeScript Intellisense-Informationen angezeigt .
Ich habe versucht tslint.jsEnable
, true
in meinen vscode-Einstellungen Einstellungen vorzunehmen, wie in den TSLint-Erweiterungsdokumenten erwähnt, aber dort kein Glück.
Was ist das richtige Setup, um .js
Dateien mit TypeScript zu verwenden und Intellisense zu erhalten, damit ich die Fehler in meinem Code kenne, bevor ich TS-Befehle ausführe?
.ts
um mir die TS-Fehler / Warnungen wie erwartet anzuzeigen . Ich denke, das könnte funktionieren, aber ich hoffte auf mehr Opt-In-Methode,@ts-check
während ich alle meine Erweiterungen als.js
Antworten:
Ich verwende @flow mit vscode, hatte aber das gleiche Problem.
quelle
"javascript.validate.enable": false
Verwendung
"javascript.validate.enable": false
in Ihren VS-Code-Einstellungen. ESLINT wird nicht deaktiviert. Ich benutze sowohl ESLINT als auch Flow. Folgen Sie einfach den Anweisungen Flow For Vs Code SetupHinzufügen dieser Zeile in settings.json. Hilft
"javascript.validate.enable": false
quelle
Include Languages Enable Emmet abbreviations in languages that are not supported by default. Add a mapping here between the language and emmet supported language. E.g.: {"vue-html": "html", "javascript": "javascriptreact"}
Klicken Sie in settings.json auf Bearbeiten und fügen Sie Folgendes hinzu :"javascript.validate.enable": false
.Sie müssen eine
.ts
Datei verwenden - z. B.test.ts
um eine Typoskriptvalidierung, eine Intelligenztyping
von Variablen, Rückgabetypen sowie eine "typisierte" Fehlerprüfung zu erhalten (z. B. um einestring
an eine Methode zu übergeben, die erwartet, dass einnumber
Parameter ausfällt).Es wird in (Standard)
.js
übertsc
transpiliert .Update (11/2018):
Klarstellung erforderlich aufgrund von Abstimmungen, sehr hilfreichen Kommentaren und anderen Antworten.
types
Ja, Sie können
type
VS-Code in.js
Dateien mit@ts-check
- wie in der Animation gezeigt - eincheckenWas ich ursprünglich für Typescript bezeichnet habe,
types
ist so etwas, in.ts
dem es nicht ganz dasselbe ist:hello-world.ts
Dies wird nicht kompiliert.
Error: Type "1" is not assignable to String
Wenn Sie diese Syntax in einer Javascript-
hello-world.js
Datei ausprobiert haben :Die von OP referenzierte Fehlermeldung wird angezeigt:
[js] 'types' can only be used in a .ts file
Wenn ich etwas verpasst habe, das dies sowie den Kontext des OP abdeckt, fügen Sie bitte hinzu. Lass uns alle lernen.
quelle
.ts
. IINM, die Beispiele zeigen Fehlerprüfung und Intellisense . Das Problem , das Sie haben , ist (statisch)type
ing Ihre Variablen und Rückkehrtypes
als auch - zum Beispielfoo:string
,bar:number
,fubar:MyClass
,myMethod(f:Array):void
,anotherMethod():string
. Hth ...@ts-check
Attributs nur um eine JS-Fehlerprüfung handelt, nicht um TS . Sehr irreführend ...Für alle, die hier landen und alle anderen Lösungen haben nicht funktioniert, probieren Sie es aus. Ich verwende Typoskript + Reagieren und mein Problem war, dass ich die Dateien in vscode zugeordnet habe, da dies
javascriptreact
nicht der Fall ist.typescriptreact
Überprüfen Sie Ihre Einstellungen auf die folgenden Einträge.quelle