Menü
Developer

Programmiersprache: Microsoft veröffentlicht Vorabversion von TypeScript 3.3

Der Release-Kandidat der typsicheren JavaScript-Variante konzentriert sich auf große Projekte und ein verbessertes Handling komplexer Datentypen.

Von
vorlesen Drucken Kommentare lesen
Programmiersprache: Microsoft veröffentlicht Vorabversion von TypeScript 3.3

Der erste Release Candidate von Version 3.3 des JavaScript-Superset TypeScript ist erschienen. Im Grunde sind zwei Neuerungen hinzugekommen: ein verbessertes Zusammenspiel der Modi --build und --watch im Compiler sowie Änderungen beim Aufruf von Union Types, um Schnittmengen von Typeigenschaften festzulegen. Das fertige Release soll laut Roadmap der Programmiersprache noch im Januar 2019 folgen.

Die dritte Hauptversion von TypeScript hatte die --build-Flag eingeführt, die den Kompilieraufwand in größeren Projekten verringern und die Kontrolle über entsprechende Abhängigkeiten erhöhen soll. Ebenfalls neu im vergangenen Jahr war ein verbesserter --watch-Modus, der mit einer inkrementellen Builder-API ebenfalls darauf achten sollte, nur Dateien und Abhängigkeiten nachzuladen, die sich verändert oder Einfluss auf die Typsicherheit haben könnten.

Der Haken dabei: --build und --watch zusammen ergaben bisher keine Kombination der Vorteile, sondern schalteten sich gegenseitig aus und erzwangen einen vollständigen Build eines Projekts, ohne zu überprüfen, welche Dateien Änderungen erhalten haben. In der neuen TypeScript-Version hingegen sorgt ein Verwenden der --watch-Flag im --build-Modus für ein inkrementelles Beobachten der Dateien, sodass Builds nun schneller abgeschlossen sein sollen. Microsoft geht davon aus dadurch zwischen 50 und 75 Prozent der Build-Zeit einsparen zu können.

Union Types ermöglichen TypeScript, Schnittmengen von Eigenschaften mehrerer Typen zu definieren. Sie erlauben grob gesagt die Definition einer Reihe von Typen, deren gemeinsame Eigenschaften auf einen Wert zutreffen können. Der Compiler wirft also immer dann einen Fehler aus, wenn auf Werte zugegriffen werden soll, deren Eigenschaften nicht in der Schnittmenge der kombinierten Typeigenschaften liegen.

Bisher war der Compiler allerdings so streng, dass es auch in komplexen Verflechtungen dieser Typdefinitionen zu Fehlern gekommen ist. Das ändert sich in TypeScript 3.3, allerdings ist die Umsetzung noch immer begrenzt: Stapelt man die Kombinationen zu hoch aufeinander, etwa bei der Verwendung generischer Methoden auf Zusammensetzungen komplexer Datentypen wie Arrays, kommt es nach wie vor zu Fehlermeldungen.

Diesen und andere Sonderfälle hebt Microsoft sich für zukünftige Releases auf. Wie die Roadmap von TypeScript zeigt, ist für den kommenden März bereits Version 3.4 geplant, inklusive einem Verweis auf den globalen Namensraum globalThis. Wer den Release-Kandidaten testen möchte, kann ihn über den Paketmanager npm mit npm install -g typescript@rc installieren. Der Quellcode findet sich auf GitHub. (Christian Reifert) / (bbo)