🔎Type Narrowing
Eine Variable hat einen deklarierten Typ – und an jeder Stelle im Code einen aktuellen, oft schmaleren Typ. Die Kontrollflussanalyse des Compilers wertet if, switch, return und Zuweisungen aus. Gehen Sie Schritt für Schritt durch – jeder angezeigte Typ kommt direkt vom Compiler.
typeof-Wächter:
typeof x === "string" ist ganz normales JavaScript – TypeScript versteht die Prüfung und grenzt den Typ im jeweiligen Zweig ein.Quelltext · gelb = aktuelle Zeile · Maus über Namen zeigt Typennur lesen
Schritt 1 / 5 · Tasten ← →
Zeile 1 · Typ von
wert
Compiler rechnet …Mögliche Typen (Union-Mitglieder)
Schritt 1
Der Parameter ist als Union aus drei Typen deklariert – mehr weiß der Compiler hier noch nicht.Alle Schritte
✍️Selbst ausprobieren
Der never-Check im default meldet, dass Fälle fehlen. Ergänzen Sie case "laedt" und case "fehler", bis der Fehler verschwindet.
TypeScript · bearbeitbar, Maus über Namen zeigt Typen
💡 Was grenzt ein?
typeof x === "…", x instanceof K, "p" in x, Vergleiche (===, !==), Wahrheitsprüfungen, Array.isArray, Type Guards (x is T), Assertion-Funktionen (asserts x is T) und Zuweisungen.⚠️ Grenzen
Eine Eingrenzung gilt nicht in einer anderen Funktion: Wird eine
let-Variable später noch neu zugewiesen, kann der Compiler in einem Callback nicht wissen, welcher Wert gerade drinsteht – dort gilt wieder der deklarierte Typ. Außerdem ist ein Type Guard nur so gut wie seine Implementierung.