En se restructurant, TypeScript 5.0 s’adapte aux modules ECMAScript

L’équipe de développement de TypeScript a restructuré l’ensemble de la base de code de cette version 5.0 pour utiliser les modules ECMAScript, et réduire ainsi la taille des paquets et améliorer les performances.

TypeScript 5.0 a été restructuré autour de l’utilisation des modules ECMAScript, un changement d’infrastructure majeur pour la variante fortement typée de JavaScript. Actuellement au stade de release candidate, la sortie en production est prévue le 16 mars par Microsoft. Les utilisateurs de cette version devront se servir au minimum de Node.js 12. En contrepartie, les npm installs pourront s’exécuter un peu plus rapidement et prendre moins de place, car selon un bulletin de Microsoft daté du 9 mars, la taille du paquet typescript sera réduite d’environ 46 %. TypeScript sera également plus rapide, avec des temps de construction réduits de 10 à 25 %. Les consommateurs d’API TypeScript ne seront probablement pas affectés.

TypeScript ne fournira pas encore son API sous forme de modules ES. Une API créée par CommonJS sera toujours fournie, et les scripts de construction existants fonctionneront toujours. Pour expliquer cette transition, Microsoft a déclaré que la base de code TypeScript actuelle est antérieure aux modules ECMAScript, normalisés en 2015.

Des efforts sur les namespaces

À l’époque, on ne savait pas dans quelle mesure les modules ES seraient compatibles avec d’autres systèmes de modules comme CommonJS, et l’on ne voyait pas d’avantage énorme à créer dans les modules, si bien que TypeScript a plutôt utilisé des espaces de noms namespaces, anciennement appelés modules internes. Même si les espaces de noms présentent des caractéristiques utiles comme la fusion des champs d’application entre fichiers, qui facilite le découpage d’un projet entre les fichiers et son exposition en tant que variable unique, la plupart des codes JavaScript et TypeScript modernes sont créés à l’aide de modules.

Ainsi, en utilisant les espaces de noms, les concepteurs de TypeScript ne se servaient pas de l’outil de la même manière que la plupart de leurs utilisateurs et ne profitaient pas de cette expérience. Les espaces de noms posaient également des problèmes de performances d’exécution. « Le passage aux modules permet aux concepteurs de TypeScript de combler l’écart d’expérience avec leurs utilisateurs, d’accélérer le développement de TypeScript et de le rendre plus rapide », a déclaré Microsoft. Cependant, si TypeScript est désormais écrit avec des modules, les fichiers JS proprement dits n’ont pas changé de format. Les bibliothèques agissent toujours comme CommonJS quand elles sont exécutées dans un environnement CommonJS.

chevron_left
chevron_right