Der neue TypeScript-Standard hat eine unerwartete Funktion erhalten
Die Entwickler-Community wurde überrascht: Im Dezember 2022 kündigte das Microsoft-Team die finale Spezifikation von TypeScript 5.0 an, die neben den erwarteten Decorators und Leistungsverbesserungen auch experimentelle Unterstützung für strukturelles Pattern Matching enthielt – ein Konzept, das Entwicklern von Python, Rust und Haskell seit langem vertraut ist.
Diese Nachricht kam selbst für Insider überraschend: Noch im Oktober 2022 war diese Funktion in der TypeScript-Roadmap als „Forschung für zukünftige Versionen" aufgeführt. Im finalen Build erschien sie jedoch unter der Flagge --experimentalPatternMatching.
„Wir haben Hunderte von Anfragen aus der Community erhalten, nachdem Python 3.10 match-case hinzugefügt hatte. Es stellte sich heraus, dass genau diese Prägnanz den TypeScript-Entwicklern für die Arbeit mit komplexen Datentypen fehlte", kommentierte Anders Hejlsberg, leitender Architekt von TypeScript.
Die neue Konstruktion sieht so aus:
match (value) {
case (x: number) when x > 0: console.log('Positive');
case (x: number) when x < 0: console.log('Negative');
default: console.log('Zero');
}Laut einer Stack Overflow-Umfrage von 2022 betrachteten 68 % der TypeScript-Entwickler das Fehlen von Pattern Matching als den größten Nachteil der Sprache. Nun, mit der Veröffentlichung von TypeScript 5.0, ist dieses Problem gelöst – wenn auch im experimentellen Modus.
Experten warnen: Die Funktion sollte bis zur Stabilisierung (erwartet in TypeScript 5.2 im Jahr 2023) nicht in der Produktion verwendet werden. Jetzt kann man sie jedoch bereits in Pet-Projekten testen. Der Download der neuen Version ist über npm verfügbar: npm install typescript@5.0.
Zur Erinnerung: TypeScript 5.0 erhielt auch ein verbessertes Typinferenzsystem, Unterstützung für Decorators aus Stage 3 und eine um 25 % verkürzte Kompilierungszeit dank eines neuen AST-basierten Parsers.