Die tsconfig-Optionen, die zählen, gruppiert nach Aufgabe: Typprüfung verschärfen, Sprachziel und Module festlegen, steuern was ausgegeben wird, Importpfade abbilden, Builds mit mehreren Projekten strukturieren und die restlichen Prüfungen justieren.
Eine tsconfig legt fest, welche Dateien der Compiler einbezieht und wie streng er prüft. Zwei Optionen erledigen das meiste: target setzt die Stufe der JavaScript-Generierung, und strict aktiviert die Sicherheitsprüfungen als Paket. Die Optionen unten sind diejenigen, die Verhalten ändern; standardmäßig aktivierte Flags sind vermerkt. Leiten Sie Ihre Konfiguration von einer Basis ab und überschreiben Sie nur das Abweichende.
Nachschlagetabelle · 55 Einträge
tsconfig-OptionenExplained
55 of 55 rows
Striktheit
Hauptschalter: aktiviert strictNullChecks, noImplicitAny und mehrere weitere auf einmal.
Fehler bei Parametern und Variablen, deren Typ nicht inferiert werden kann (ansonsten any).
null und undefined sind nicht mehr jedem Typ zuweisbar; Sie müssen es explizit erlauben.
Prüft Funktionsparameter kontravariant; erkennt Callback-Parametertypen, die nicht typsicher sind.
Typprüft bind, call und apply gegen die deklarierten Parameter der Funktion.
Fehler, wenn eine Klasseneigenschaft keinen Anfangswert hat und im Konstruktor nicht zugewiesen wird.
Eine optionale Eigenschaft { p?: T } akzeptiert keine explizite undefined-Zuweisung mehr.
Verlangt das override-Schlüsselwort bei Membern, die ein Basisklassen-Member verdecken.
Fehler bei deklarierten lokalen Variablen, die nie gelesen werden.
Fehler bei deklarierten Funktionsparametern, die nie gelesen werden.
Fehler bei Ausdrucksanweisungen ohne Wirkung.
Punkt-Zugriff ist für Index-Signatur-Schlüssel unzulässig; verwenden Sie Klammern (obj["key"]).
Fehler, wenn ein Codepfad einen Wert zurückgibt, ein anderer aber nicht.
Fehler, wenn ein switch-case ohne break in den nächsten durchrutscht.
Sprache & Module
Die Stufe der JavaScript-Generierung (z. B. ES2022); neuere Targets bedeuten weniger Downleveling.
Die verfügbaren eingebauten APIs (z. B. ES2022, DOM, DOM.Iterable).
Das ausgegebene Modulsystem (z. B. ESNext, CommonJS, NodeNext).
Folgt Nodes echten Regeln: Jede Datei wählt CJS oder ESM anhand der nächstgelegenen package.json, und relative Importe brauchen Dateierweiterungen.
Wie Importpfade aufgelöst werden (z. B. bundler, node, nodenext).
Wann eine Datei als Modul zählt: auto (anhand von import/export), legacy oder force (immer).
Erlaubt Default-Import-Stil aus CommonJS-Modulen (mit den meisten Setups standardmäßig true).
Erlaubt Default-Importe aus Modulen, die nur benannte Werte exportieren (nur auf Typebene).
Importe werden genau wie geschrieben ausgegeben; Typ-Importe müssen import type verwenden (TS 5).
Lässt Importe .json-Dateien als typisierte Werte laden.
Bezieht .js-Dateien als Eingabe in die Kompilierung ein.
Typprüft auch .js-Dateien und liest deren JSDoc-Kommentare; impliziert allowJs.
Wie .tsx kompiliert wird: react-jsx (automatische Runtime), react (React.createElement) oder preserve.
Beschränkt automatisch einbezogene @types-Pakete auf diese Liste; ein leeres Array bezieht keines ein.
Ordner, die nach @types-Paketen durchsucht werden, statt jedes node_modules/@types im Verzeichnisbaum.
Stellt sicher, dass jede Datei isoliert transpiliert werden kann (von Bundlern und esbuild gefordert).
Ausgabe
Wohin das kompilierte JavaScript geschrieben wird.
Die Wurzel der Quelldateien; hält die Form des Ausgabebaums stabil.
Gibt .js.map-Dateien aus, damit Debugger zurück auf TypeScript mappen.
Bettet die Source Map als Kommentar in die .js-Datei ein, statt eine .js.map-Datei zu erzeugen.
Gibt .d.ts-Typdeklarationen aus (für Bibliotheken nötig).
Gibt .d.ts.map-Dateien aus, damit Editoren von Deklarationen zur TypeScript-Quelle springen.
Gibt nur .d.ts-Dateien aus; JavaScript übernimmt ein Bundler (erfordert declaration oder composite).
Wiederverwendet Helfer wie __rest aus tslib, statt sie in jede Datei zu schreiben.
Korrigiert for..of, Spread und Destructuring über Iterables, wenn das Target vor ES2015 liegt.
Entfernt Kommentare aus dem ausgegebenen JavaScript.
Nur Typprüfung; schreibt keine Dateien (verwendet, wenn ein Bundler die Ausgabe übernimmt).
Pfade
Ein Basisverzeichnis für die Auflösung nicht-relativer Module.
Bildet Import-Präfixe auf Speicherorte ab, z. B. { "@/*": ["src/*"] }.
Behandelt mehrere Verzeichnisse als eine virtuelle Wurzel für die Auflösung.
Projektstruktur
Markiert ein Projekt als baubar für Projekt-Referenzen (aktiviert declaration, incremental).
Hängt von anderen tsconfig-Projekten ab für schnellere, isolierte Builds.
Speichert Build-Infos, um unveränderte Dateien beim nächsten Lauf zu überspringen.
Weitere Prüfungen
Überspringt die Typprüfung von .d.ts-Dateien zugunsten der Geschwindigkeit (standardmäßig true).
Fehler bei Importen, deren Groß-/Kleinschreibung von der tatsächlichen Datei abweicht.
Array- und Indexzugriff liefert T | undefined statt T.
Klassenfelder werden mit Object.defineProperty erzeugt statt durch einfache Zuweisung (standardmäßig true für ES2022+-Targets).
Aktiviert die Legacy-Decorator-Syntax älterer Frameworks (vor dem Standard).
Meldet volle Typnamen in Fehlermeldungen, statt lange abzuschneiden.
Fehler, wenn ein reiner Side-Effect-Import (import "./x.css") zu nichts auflöst.
Erlaubt Importpfade mit Endung .ts (erfordert noEmit oder emitDeclarationOnly).