Website-Suche

javascript - Fehler: 'types' kann nur in einer .ts-Datei verwendet werden - Visual Studio Code verwendet @ts-check


Ich fange an, TypeScript in einem Node-Projekt zu verwenden, an dem ich in Visual Studio Code arbeite. Ich wollte die „Opt-in“-Strategie verfolgen, ähnlich wie bei Flow. Daher habe ich // @ts-check oben in meiner .js-Datei eingefügt, in der Hoffnung, TS für diese Datei zu aktivieren. Letztendlich möchte ich das gleiche „Linting“-Erlebnis wie bei Flow, daher habe ich das Plugin TSLint installiert, damit ich Intellisense-Warnungen/Fehler sehen kann.

Aber mit meiner Datei sieht es so aus:

// @ts-check

module.exports = {
  someMethod: (param: string): string => {
    return param;
  },
};

und meine tsconfig.json-Datei sieht so aus...

{
  "compilerOptions": {
      "target": "es2016",
      "module": "commonjs",
      "allowJs": true
  }
}

Ich erhalte diesen Fehler: [js] 'types' kann nur in einer .ts-Datei verwendet werden. wie unten im Bild gezeigt.

Ich habe diese Frage gesehen, die empfohlen hat, die JavaScript-Validierung in VSCode zu deaktivieren, aber dann zeigt mir das keine TypeScript-Intellisense-Informationen an.

Ich habe versucht, tslint.jsEnable in meinen VSCode-Einstellungen wie in der TSLint-Erweiterungsdokumentation angegeben auf true zu setzen, aber es hat nichts gebracht.

Wie ist die richtige Einrichtung, um .js-Dateien mit TypeScript zu verwenden und Intellisense zu erhalten, damit ich weiß, welche Fehler in meinem Code sind, bevor ich irgendwelche TS-Befehle ausführe?

Antwort #1

Ich benutze Flow mit VSCode, hatte aber dasselbe Problem. Ich habe es mit diesen Schritten gelöst:

  1. Installiere die Erweiterung Flow Language Support

  2. Deaktivieren Sie die integrierte TypeScript-Erweiterung:

    1. Gehe zum Erweiterungen-Tab
    2. Suche nach @builtin TypeScript- und JavaScript-Sprachfeatures
    3. Klicken Sie auf Deaktivieren

Antwort #2

Verwenden Sie "javascript.validate.enable": false in Ihren VS Code-Einstellungen, es deaktiviert ESLINT nicht. Ich verwende sowohl ESLINT als auch Flow. Folgen Sie einfach den Anweisungen Flow Für VS Code Setup

Das Hinzufügen dieser Zeile in settings.json hilft "javascript.validate.enable": false

Antwort #3

Ich habe die folgenden Schritte unternommen, um das Problem zu beheben:

Gehe zu den Einstellungen und dann zu den Optionen:

Gehe nach den Einstellungen und suche in der Suchleiste nach javascript.validate und deaktiviere das Kontrollkästchen:

Wenn Sie es über JSON bearbeiten möchten, dann: Gehen Sie zu: Code -> Einstellungen -> Einstellungen -> Erweiterungen -> Scrollen Sie nach unten und finden Sie „In settings.json bearbeiten“.

dann hinzufügen

"javascript.validate.enable": false

Antwort #4

Für alle, die hier landen und bei denen alle anderen Lösungen nicht funktioniert haben, probiert dies aus. Ich benutze TypeScript + React und mein Problem war, dass ich die Dateien in VSCode als javascriptreact und nicht als typescriptreact zugeordnet habe, also überprüft eure Einstellungen auf die folgenden Einträge.

   "files.associations": {
    "*.tsx": "typescriptreact",
    "*.ts": "typescriptreact"
  },

Denken Sie daran, den TypeScript-Server neu zu starten in VS Code, nachdem Sie die Änderungen gespeichert haben: Strg-Shift-P -> TypeScript: TS-Server neu starten

Verwandte Artikel