Im Fokus der neuen Sprachversion stehen weitere Verbesserungen. So soll in TypeScript 2.1 die Inference deutlich verbessert werden; zudem wird das Schreiben von asynchronem Code in allen Runtimes vereinfacht. Daniel Rosenwasser hat im TypeScript-Blog von Microsoft die Highlights der kommenden Sprachversion näher vorgestellt.
Neuerungen in TypeScript 2.1 RC
Vor allem von zwei Neuerungen sollen Entwickler in TypeScript 2.1 profitieren. So bringt die neue Sprachversion eine Vereinfachung beim Modellieren von Szenarien mit, bei denen Variablen schrittweise initialisiert werden. Da in JavaScript viel Code auf diese Weise geschrieben wird, wird die Migration bestehender Codebases zu TypeScript mit dem neuen Feature deutlich vereinfacht.
Kann der Variablentyp von TypeScript nicht eindeutig festgestellt werden, nutzt TypeScript meist any
, um für möglichst viel Flexibilität zu sorgen. Viele Entwicklern finden dieses implicite any allerdings nicht ausreichend, sodass die --noImplicitAny
-Option eine Warnung ausgibt, wenn ein Type nicht erschlossen werden kann.
In TypeScript 2.0 wurde eine Kontrollflussanalyse eingeführt, die den Verlauf der Types innerhalb des Programms nachverfolgt. Diese wurde in TypeScript 2.1 weiter verbessert:
Because that analysis examines the assignments of every variable, we’ve leveraged that same foundation in TypeScript 2.1 to more deeply examine the type of any variable that seems like it’s destined for a better type. Instead of just choosing any, TypeScript will infer types based on what you end up assigning later on.
Eine ähnliche Nachverfolgung steht auch für leere Arrays zur Verfügung, was insbesondere dafür sorgt, dass TypeScript offensichtliche Fehler leichter finden kann.
Besserer async/await-Support
Ein weiteres spannendes neues Feature ist der Support für das neue ECMAScript-2017-Feature async/await. Dieses ermöglicht Usern, Code um Promises herum zu schreiben, ohne Callbacks nutzen zu müssen. Zwar wurde es bereits in früheren TypeScript-Versionen unterstützt, allerdings nur für ES2015-Runtimes. Ab TypeScript 2.1 steht diese Funktionalität auch für ES3- und ES5-Runtimes zur Verfügung, was Entwicklern mehr Flexibilität bei der Nutzung von async/await bietet.
Darüber hinaus bringt die neue TypeScript-Version auch viele weitere Neuerungen mit sich; einen Überblick über alle Änderungen findet sich in der Roadmap. TypeScript 2.1 RC kann wie gewohnt über NuGet installiert werden.