Une version candidate de TypeScript 6.0 est attendue pour le 24 février et la sortie de la version finale est prévue pour le 17 mars. Parmi les principales fonctionnalités de TypeScript 6.0 figure un drapeau, --stableTypeOrdering, destiné à faciliter les migrations vers la version 7.0 de TypeScript basée sur Go. « Comme annoncé l'année dernière, nous travaillons sur une autre base de code pour le compilateur TypeScript et le service linguistique écrit en Go qui tire parti de la vitesse du code natif et du multithreading à mémoire partagée », a déclaré Daniel Rosenwasser, chef de produit principal pour TypeScript chez Microsoft, dans un blog dévoilant la version bêta. « TypeScript 6.0 servira à bien des égards de pont entre la version 5.9 et 7.0 », a-t-il ajouté. « À ce titre, la plupart des changements apportés à TypeScript 6.0 visent à faciliter l'alignement et la préparation à l'adoption de la version 7.0. » Mais certaines fonctionnalités et améliorations ne concernent pas uniquement l'alignement.
TypeScript 6.0 prend également en charge l'option es2025 pour target et lib, réduit la sensibilité au contexte des fonctions this -less et propose de nouveaux types pour Temporal, qui fournissent des objets et des fonctions standard pour travailler avec les dates et les heures. Avec l'indicateur --stableTypeOrdering, le comportement de classement des types de TypeScript 6.0 correspond à celui de TypeScript 7.0, ce qui réduit le nombre de différences entre les deux bases de code. Microsoft n'encourage pas nécessairement l'utilisation systématique de cet indicateur, car il peut ralentir considérablement la vérification des types (jusqu'à 25 % selon la base de code).
Plusieurs autres évolutions
Avec l'option es2025 de TypeScript 6.0, la cible ajoute d’autres types pour les API intégrées (par exemple RegExp.escape) et déplace quelques déclarations de esnext vers es2025. Avec les fonctions this -less, si this n'est jamais utilisé dans une fonction, il n'est pas considéré comme sensible au contexte. Cela signifie que ces fonctions seront considérées comme prioritaires en matière d'inférence de types. « Pour Temporal, la proposition ECMAScriptTemporal tant attendue a atteint la phase 3 et devrait être ajoutée à JavaScript dans un avenir proche », a indiqué M. Rosenwasser. TypeScript 6.0 inclut désormais des types intégrés pour l'API Temporal, afin que les développeurs puissent commencer à l'utiliser dans le code TypeScript via --target esnext ou « lib » : [« esnext »] ou le plus granulaire temporal.esnext.
Autres fonctionnalités et améliorations de TypeScript 6.0 :
- De nouveaux types ont été ajoutés pour les méthodes « upsert ». La proposition « upsert » d'ECMAScript, qui a récemment atteint la phase 4, introduit deux méthodes sur Map et WeakMap. Il s'agit de getOrInsert ou getOrInsertComputed. Ces méthodes ont été ajoutées à la bibliothèque esnext afin de pouvoir être utilisées immédiatement dans TypeScript 6.0.
- RegExp.escape, qui permet d'échapper les caractères d'expression régulière comme *, ? et +, est disponible dans la bibliothèque es2025 et peut à présent être utilisé dans TypeScript 6.0
- Le contenu de lib.dom.iterable.d.ts et lib.dom.asynciterable.d.ts est entièrement inclus dans lib.dom.d.ts. L'option lib de TypeScript permet aux développeurs de spécifier les déclarations globales dont dispose un runtime cible.
Les développeurs peuvent accéder à cette version bêta 6.0 de Typescript via npm en exécutant la commande npm install -D typescript@beta. Quant à TypeScript 7.0, il promet d’améliorer les performances et l'évolutivité grâce à un compilateur et un service linguistique écrits en Go.

Commentaire