TypeScript 3.4: Inkrementeller Compiler und Typinferenz für Generic Functions

Ein Flag zur inkrementellen Kompilierung soll in der neuen Version des JavaScript-Superset für schnellere Builds sorgen.

In Pocket speichern vorlesen Druckansicht
TypeScript 3.4: Inkrementeller Compiler und Typinferenz für Generic Functions
Lesezeit: 2 Min.
Von
  • Björn Bohn

Microsoft hat die JavaScript-Variante TypeScript in Version 3.4 veröffentlicht. Größte Neuerung dürfte das Compiler-Flag --incremental sein, das die in vorherigen Versionen eingeführten Methoden für inkrementelle Builds erweitert und für schnellere Builds sorgen soll. Außerdem soll sich das Zusammenspiel der Typinferenz mit generischen Funktionen verbessert haben. Darüber hinaus gibt die globale Variable globalThis Zugriff auf den jeweiligen globalen Scope. Schließlich lassen sich Arrays und Tupels als readonly deklarieren.

Bislang konnten TypeScript-Entwickler auf den --watch-Modus zurückgreifen, der überwacht, ob eine Änderung bei Dateien vorliegt. Ist das der Fall, kann TypeScript einen vorher erstellten Dependency-Graphen nutzen, um festzustellen, welche anderen Dateien erneut zu überprüfen sind. Laut Microsoft kann man aber nicht von allen Nutzern erwarten, den --watch-Prozess ständig und für alle Builds laufen zu lassen.

Wie im Release Candidate von TypeScript 3.4 bekanntgegeben, hat Microsoft deshalb das --incremental-Flag eingeführt, das die Informationen des Projektgraphen der letzten Kompilierung speichert. Wenn Anwender das nächste Mal TypeScript mit dem Flag aufrufen, nutzt es die Informationen automatisch, um den kostengünstigsten Weg zu wählen, mit Änderungen im Projekt umzugehen.

Eine weitere Neuerung in TypeScript 3.4 gibt es im Zusammenspiel der Typinferenz und generischen Funktionen. So ist es jetzt möglich, das Funktionen Types von anderen Generic-Funktionen ableiten. Während der Typ-Argumentableitung für einen Aufruf einer generischen Funktion, die einen Funktionstyp zurückgibt, wird TypeScript gegebenenfalls Typparameter aus generischen Funktionsargumenten auf den resultierenden Funktionstyp übertragen. In der Pull Request auf GitHub finden sich Codebeispiele, die die Neuerung erläutern.

Mehr Infos

Auf der von heise Developer, iX und dpunkt.verlag veranstalteten Konferenz für Enterprise-JavaScript ist TypeScript ein wichtiges Thema. Wer beim Besuch der enterJS Geld sparen möchte, kann noch bis zum 26. April vom Frühbucherrabatt profitieren.

Darüber hinaus nimmt TypeScript 3.4 mit der Variable globalThis eine für das kommende ECMAScript 2019 geplante Neuerung voraus. Sie verallgemeinert den Zugang auf den globalen Scope. Bisher mussten Entwickler dafür unterschiedliche Objekte bemühen: Im Browser window, self, this oder frames, unter Node.js entweder global oder this. Die neue Variable globalThis gibt in allen Umgebungen Zugriff auf den globalen Scope und erkennt unter anderem, ob Variablen dort mit const als schreibgeschützt deklariert sind.

Eine vollständige Liste der Neuerungen findet sich im TypeScript-Blog. Das nächste Release des JavaScript-Superset ist dank des zweimonatigen Releasezyklus für Ende Juni geplant. (bbo)