Le 12 mai 2020, Microsoft a livré la version de production de TypeScript 3.9, le populaire sur-ensemble typé de JavaScript. Cette version qui succède à la release candidate publiée le 28 avril dernier, est très axée sur la performance, le polissage et la stabilité. En particulier, les modifications améliorent les vitesses d'édition et de compilation extrêmement faibles associées à certains paquets. La version peut être installée via NuGet ou NPM : npm install typecript.

L'équipe de TypeScript avait constaté des problèmes de performance avec des paquets du genre material-ui et les composants de style. Une série de six requêtes pull, couvrant des opérations préconisant l'utilisation d'objets au lieu de fermetures pour les mappeurs de type et l'optimisation des références de type différées, ont permis de réduire considérablement les temps de compilation – d’environ 25 % dans le cas de material-ui, par exemple. Pour gagner en vitesse, ces derniers ont également apporté certaines modifications pour éviter que la fonctionnalité de renommage des fichiers dans VS Code n’entraîne des lenteurs dans l’éditeur de code.

Cette version de production apporte également des améliorations dans plusieurs autres domaines.

- Améliorations du processus d'inférence, pour répondre à une situation dans laquelle certaines régressions s'étaient produites dans les mises à jour précédentes des déclarations de fonctions comme Promise.all et Promise.race.

- Nouveaux commentaires // @ts-expect-erreur. Lorsqu'une ligne est préfixée par ce commentaire, TypeScript supprimera la déclaration de l'erreur. S'il n'y a pas d'erreur, TypeScript signalera que le commentaire n'était pas nécessaire.

- Améliorations visant à préserver les nouvelles lignes.

- Corrections rapides pour les expressions de retour manquantes.

- Prise en charge des fichiers tsonfig.json "Solution Style".

- Les vérifications des fonctions non appelées, introduites dans TypeScript 3.7 pour signaler une erreur lorsqu'un développeur a oublié d'appeler une fonction, seront désormais prises en charge dans les opérateurs conditionnels ternaires, essentiellement, la syntaxe (cond ? trueExpr : falseExp).

- Concernant les importations automatiques CommonJS en JavaScript, TypeScript détectera désormais automatiquement les types d'importation pour que le style d'un fichier reste propre et cohérent.

- Vérifications plus strictes des insertions et des propriétés facultatives. Selon Microsoft, c’est un changement décisif.

- Les « Getters » et « Setters » ne sont plus énumérables. C’est un autre changement important. Les anciennes versions de TypeScript émettaient des accesseurs de type get et set dans les classes de manière à les rendre énumérables, ce qui n'était pas conforme à la spécification ECMAScript.

Disponible en version bêta depuis le 27 mars, TypeScript 3.9 succède à TypeScript 3.8, disponible depuis février. Cette dernière version n’inclura pas l’opérateur de type « Awaited » pour modéliser la façon dont le déballage de la fonction « Promise » se comporte dans JavaScript. Les développeurs avaient initialement prévu d’intégrer l’opérateur dans la future version, mais ils l’ont retiré de la branche principale, estimant qu’ils devaient encore améliorer la fonction.