TypeScript 3.6 Beta bietet strikteres Checking für Iterator und Generator

Die Betaversion des JavaScript-Supersets TypeScript hat ebenfalls akkuratere Array Spreads und eine bessere User Experience für Promises im Gepäck.

In Pocket speichern vorlesen Druckansicht 3 Kommentare lesen
Die Beta für TypeScript 3.6 bietet strikteres Checking für Iterator und Generator
Lesezeit: 3 Min.
Von
  • Björn Bohn

Microsoft hat die erste Beta für Version 3.6 des JavaScript-Supersets TypeScript vorgelegt. Sie gilt als Feature Complete, es sollen also alle neuen Funktionen für das kommende Release vorhanden sein. In den kommenden Wochen sollen lediglich Fehlerbehebungen und Performanceverbesserungen folgen. TypeScript 3.6 bietet demnach ein strikteres Checking für Iterator- und Generator-Funktionen, einen genaueren Array Spread sowie eine verbesserte User Experience beim Einsatz von Promises.

Bislang hatten Entwickler beim Nutzen von Generator keine Möglichkeit zu unterscheiden, ob ein Wert von einem Yield oder einem Return stammt. Außerdem gingen Generator immer davon aus, dass der Typ eines Yield any ist. Um das zu ändern, hat das Entwicklerteam von Microsoft zunächst Iterator und IteratorResult um einige Type-Parameter sowie einen neuen Generator-Typ ergänzt.

Damit erlaubt Iterator Entwicklern den Yield- und Return-Typ zu spezifizieren sowie festzulegen, welchen Typ next annehmen kann. Darauf aufbauend ist der neue Generator-Tp ein Iterator, bei dem immer die Methoden return und throw präsent sind. Um die Unterscheidung zwischen Return- und Yield-Werten zu ermöglichen, konvertiert der IteratorResult-Typ nun zu einem discriminated Union-Typ.

TypeScript setzt bei For/Of-Schleifen und Array Spreads für ECMAScript-Versionen vor ES2015 auf einen simplen Emit für Array-Typen und zusätzlich auf eine --downlevelIteration-Flag für weitere Typen. Durch den Einsatz der Flag ist der ausgegebene Code zwar viel größer, dafür aber genauer. Daher setzten viele Nutzer auf den einfachen Emit, der aber in einigen Sonderfällen zu seltsamen Ausgaben führte.

In TypeScript 3.6 können Entwickler nun auf den Helper __spreadArrays zurückgreifen, der beim Umgang mit ECMAScript 2015 und älter genauer sein soll. Eine detaillierte Angabe zu den Funktionen bietet die entsprechende Pull Request auf GitHub.

Laut dem TypeScript-Team sind Promises einer der beliebtesten Wege, um mit asynchronen Daten zu arbeiten. Allerdings sei der Einsatz einer API, die sich an Promises orientiert, für Anwender häufig verwirrend. Die neue TypeScript-Version bietet deshalb einige Verbesserungen, die die falsche Verwendung von Promises eindämmen sollen.

Beispielsweise vergessen Entwickler wohl oft .then() oder await zu nutzen, bevor sie die Inhalte eines Promise an eine andere Funktion weitergeben. Die Fehlerbenachrichtigung soll nun genauer sein und Nutzer drauf hinweisen, möglicherweise ein await einzubauen.

Eine vollständige Liste der Neuerungen bietet der Blogbeitrag zur Betaversion. Verläuft alles nach Plan, soll TypeScript 3.6 gegen Ende August als vollwertiges Release erscheinen. (bbo)