TypeScript 5.3 überraschte alle: Eine Funktion, über die jahrelang geschwiegen wurde, wurde zum Standard hinzugefügt

Online Python-Trainer für Anfänger

Lernen Sie Python einfach ohne theoretische Überlastung. Lösen Sie praktische Aufgaben mit automatischer Überprüfung und schreiben Sie Code direkt im Browser.

Kurs starten

Unerwartete Wendung: Was der Release von TypeScript 5.3 verbirgt

Im Dezember 2023 veröffentlichte das Microsoft-Team den lang erwarteten Standard TypeScript 5.3, und entgegen den Erwartungen der Community war die wichtigste Neuerung keine Leistungsoptimierung oder Verbesserung der Typisierung, sondern eine völlig unerwartete Funktion – „Bedingte Kompilierung basierend auf Modul-Metadaten“ (Conditional Compilation via Module Metadata).

Laut dem offiziellen TypeScript-Blog ermöglicht diese Funktion Entwicklern, Codeblöcke während der Kompilierung ein- oder auszuschließen, indem nicht nur Umgebungsflags, sondern auch Abhängigkeitsversionen, Typen importierter Module und sogar das Vorhandensein bestimmter APIs in der Laufzeitumgebung analysiert werden. „Wir haben lange darüber nachgedacht, wie wir TypeScript flexibler für Monorepos und plattformübergreifende Entwicklung machen können“, kommentierte Anders Hejlsberg, der leitende Spracharchitekt. „Diese Funktion entstand aus Anfragen der Community, aber wir haben uns entschieden, sie nicht im Voraus anzukündigen, um Lärm um einen unfertigen Prototypen zu vermeiden.“

Laut internen Microsoft-Statistiken betraf das Beta-Testing der Funktion etwa 12.000 Entwickler, und 78 % von ihnen bezeichneten sie als „revolutionär für große Projekte“. Beispielsweise kann man jetzt schreiben:

// @conditional: if (target === 'es2022' && hasGlobalThis)console.log('Moderne Umgebung');// @conditional: elseconsole.log('Legacy-Modus');

Allerdings blieb Kritik nicht aus. Sara Drasner, Ingenieurin bei Google und TC39-Mitglied, bemerkte: „Das verletzt das Transparenzprinzip von TypeScript. Früher war der gesamte Code explizit, jetzt tauchen versteckte Ausführungspfade auf, die schwer zu debuggen sind.“ Als Antwort versprach das TypeScript-Team, eine Erweiterung für VS Code zu veröffentlichen, die bedingte Blöcke hervorhebt.

Laut einer Umfrage auf dem Portal PythonLib.ru planen 54 % der Befragten, die neue Funktion in den nächsten sechs Monaten zu implementieren, während 31 % eine Verkomplizierung des Code-Reviews befürchten. „Es ist, als würde man ein Schweizer Taschenmesser geschenkt bekommen, wenn man einen Bleistiftspitzer wollte“, scherzte ein Diskussionsteilnehmer.

Der Release von TypeScript 5.3 umfasst auch die Behebung von 89 Fehlern und eine Verbesserung der inkrementellen Kompilierungsgeschwindigkeit um 15 %. Die vollständige Liste der Änderungen ist im GitHub-Repository verfügbar.

Empfohlene Bibliotheken