TypeScript 3.5: Besser spät als nie?

TypeScript 3.5: Google meldet Upgrade-Probleme mit Microsofts Sprache
Keine Kommentare

TypeScript 3.5 ist Ende Mai erschienen. Nun hat Google versucht, seine Codebasis auf diese Version zu aktualisieren. Dabei habe man mit einer größeren Anzahl an Problemen zu tun gehabt als üblich, wie Evan Martin von Google nun auf GitHub berichtet. Manche der Schwierigkeiten könnten auch andere Nutzer betreffen, insbesondere dort, wo D3 und RxJS involviert sind.

Manche Fehler fallen nicht sofort auf. Das ist bei TypeScript 3.5 der Fall. Vor wenigen Tagen eröffnete Google eine GitHub-Issue zur TypeScript-Version, in der drei wesentliche Probleme beschrieben werden, die beim Upgrade aufgetreten seien. Darunter sind laut Google Breaking Changes, die nicht in den Release Notes angekündigt wurden. Dazu gehören bestimmte Aspekte des neuen Types der Boolean-Funktion. Die Verhaltensänderung an dieser Stelle sei grundlegend wohl beabsichtigt gewesen; die Auswirkungen auf RxJS bei Verwendung von filter(Boolean) erzeuge allerdings unerwartetes Verhalten. So habe filter(Boolean) in RxJS mit TypeScript 3.4 unerwartet any ausgegeben, in TypeScript 3.5 sei es hingegen T. Zu diesem Problem wurde auch für RxJS selbst ein Bug Report erstellt.

Die Änderung an den Generic Type Parameters war in den Release Notes zu TypeScript 3.5 als Breaking Change markiert. Hier hätte sich Google jedoch ein Flag gewünscht, um die weitreichenden Anpassungen am Generic separat einpflegen zu können. Insbesondere sei Code von der Neuerung betroffen, der mit D3 erstellt wurde. So habe d3.Selection<> vier Generic Arguments, deren Verhalten durch das Upgrade auf TypeScript 3.5 beeinflusst wird. Hier wird in Googles Report jedoch auch hervorgehoben, dass die Typisierung von D3 ebenfalls nicht unproblematisch sei und einer Überarbeitung bedürfe.

TypeScript 3.5: Kleine Änderung, große Folgen

Das dritte von Google aufgeführte Problem wird hingegen als potenziell unbeabsichtigt bezeichnet und ist nicht in der Liste der offiziellen Breaking Changes zu finden. So habe const s = new Set(); in TypeScript 3.4 Set<any> zurückgegeben, während in TypeScript 3.5 any entfernt worden sei. Dem zugrunde liege eine Änderung in lib.es2015.iterable.d.ts. Im Ergebnis habe dies zu zahlreichen Typenfehlern in Googles Code geführt, die schwer zu beheben gewesen seien.

Weitere Informationen zu den von Google gefundenen Fehlern in TypeScript 3.5 können der GitHub-Issue entnommen werden. Daniel Rosenwasser aus dem TypeScript-Team äußerte sich in einem Kommentar zur Issue dazu, dass für TypeScript 3.6 eine längere Testphase eingeräumt worden sei, im künftig mehr dieser Problem zu erkennen, bevor sie in die Produktion gelangen könnten.

Unsere Redaktion empfiehlt:

Relevante Beiträge

Hinterlasse einen Kommentar

Hinterlasse den ersten Kommentar!

avatar
400
  Subscribe  
Benachrichtige mich zu:
X
- Gib Deinen Standort ein -
- or -