TypeScript 4.5, la dernière mise à jour du langage fortement typé de Microsoft basé sur JavaScript, est désormais disponible pour tous. La version comporte un type appelé Awaited qui modélise des opérations du genre await dans les fonctions asynchrones ou la méthode .then() sur les objets Promise. Cependant, le support des modules ECMAScript dans Node.js 12, une fonctionnalité introduite dans la bêta de TypeScript 4.5 et initialement prévue pour la release, a été reportée à une version ultérieure.

Node.js, qui peut fonctionner avec TypeScript, a travaillé sur le support des modules ECMAScript (ESM) de façon à packager le code JavaScript pour le réutiliser. Mais « ce travail a été difficile parce que Node.js a été construit sur un système de modules différent, CommonJS », a expliqué Microsoft. Cependant ESM a été largement implémenté dans Node.js 12.

Les autres évolutions

TypeScript 4.5 apporte plusieurs autres innovations :

- Une régression des performances a été ajoutée en mode --build en raison d'appels realpath excessifs pour les fichiers JSON.

- La version release introduit une solution pour remplacer facilement une librairie intégrée spécifique pour mieux supporter le paramètre lib de node_modules.

- Pour améliorer la vitesse, une implémentation native de la fonction realpathSync de Node.js est désormais utilisée sur tous les systèmes d'exploitation. Auparavant, elle était limitée à Linux. Elle a maintenant été adaptée aux systèmes d'exploitation généralement sensibles à la casse, comme Windows et MacOS.

- Des compléments de type snippet sont proposés pour les attributs JSX.

- Une proposition ECMAScript permettant de vérifier si un objet possède un champ privé est prise en charge. Une autre proposition ECMAScript, pour les assertions d'importation (Import Assertions), est également prise en charge. Cette syntaxe est utilisée par les moteurs d'exécution pour s'assurer qu'une importation est bien au format attendu.

- Un meilleur support de l'éditeur est offert pour les types non résolus.

- Les valeurs avec des chaînes de modèles peuvent être réduites. De plus, les chaînes de modèles sont reconnues comme des discriminants.

- Un nouveau paramètre de module appelé es2022, est pris en charge, fournissant un await de haut niveau, ce qui signifie que les développeurs peuvent utiliser await en dehors des fonctions asynchrones.

- Une certaine suppression de la récursion de queue est effectuée sur les types conditionnels.

- Une partie de TypeScript 4.5 permet un modificateur de type sur les importations individuelles nommées.

TypeScript s'appuie sur JavaScript en ajoutant une syntaxe pour les types statiques. La version précédente, TypeScript 4.4, est disponible pour tous depuis le mois d’août.

TypeScript 4.5 a atteint le stade release le 2 novembre. La dernière version du langage est disponible complètement depuis le 17 novembre. Les développeurs peuvent installer TypeScript 4.5 via NuGet ou via NPM : npm install typescript.