Disponible en version de production depuis le 25 août, TypeScript 4.8, la dernière mise à jour de la variante fortement typée de JavaScript de Microsoft, apporte des améliorations en termes de correction et de cohérence et sur la surveillance des fichiers sur Linux et MacOS. La dernière itération apporte optimise ainsi la cohérence et à la correction sous --strictNullChecks. Ces changements affectent le fonctionnement des types intersection et union et sont exploités dans la façon dont TypeScript réduit les types. Dans un exemple, unknown est proche dans l’esprit du type union {} | null | undefined parce qu'il accepte null, undefined, et tout autre type. TypeScript reconnaît maintenant ce cas et autorise les affectations de unknown à {} | null | undefined. « Ces changements permettent des améliorations sensibles pour l’analyse du flux de contrôle de la réduction des types », a déclaré Microsoft. Les valeurs génériques sont également réduites.

En ce qui concerne les corrections de la surveillance des fichiers, TypeScript était depuis longtemps affecté par un bug qui rendait très difficiles certains changements de fichiers en mode --watch et de scénarios d'éditeur. Ces problèmes surviennent fréquemment sur les systèmes Unix. Cette situation était provoquée par des hypothèses sur la manière dont Node.js traite les événements de renommage sur les systèmes de fichiers. Les systèmes de fichiers utilisés par Linux et MacOS utilisent des inodes, et Node.js attache des surveillants de fichiers aux inodes plutôt qu'aux chemins de fichiers. Or, TypeScript essaie d'utiliser les mêmes objets watcher s'il détecte qu'un chemin existe toujours sur le disque, ce qui peut l’amener à réutiliser l'objet watcher au lieu d'installer un nouveau watcher à l'emplacement d'origine, et à surveiller les changements dans un fichier potentiellement non pertinent. TypeScript 4.8 gère désormais correctement ces cas sur les systèmes d'inode et installe un autre watcher.

Parmi les autres améliorations de TypeScript 4.8, on peut également citer :

- Des optimisations pour accélérer les scénarios autour de --watch et --incremental, ainsi que les références de projet utilisant--build.

- Une meilleure inférence des modèles de liaison.

- Lors de l'exécution de find-all-references dans un éditeur, TypeScript sait maintenant agréger plus intelligemment les références. Cette amélioration a permis de réduire d'environ 20 % le temps nécessaire à la recherche d'un identifiant très utilisé dans une base de code.

- Dans un changement radical, les génériques non contraints ne sont plus assignables à {}. Autre changement majeur, les types ne peuvent plus être importés ou exportés dans les fichiers JavaScript.

TypeScript 4.8 est téléchargeable via NuGet, ou via NPM en utilisant la commande npm install -D typescript. Cette version de production fait suite à une version candidate publiée le 11 août et à une version bêta publiée le 21 juin. La précédente version 4.7 de TypeScript avait été publiée en mai 2022.