Dévoilé le 23 mars, TypeScript 6.0 est disponible pour tous. Il s’agit de la dernière itération du langage open source codée en JavaScript. En effet, la version 7.0 actuellement en voie d’achèvement et comprend un compilateur et un service de langage écrits en Go. Ce dernier apporte plus de performance du code et du multithreading à mémoire partagée. La version 7.0 est « pratiquement achevée », a indiqué M. Rosenwasser. Elle peut être testée depuis l’éditeur Visual Studio Code ou installée via NPM. « En fait, si vous êtes en mesure d'adopter TypeScript 6.0, nous vous encourageons à essayer les aperçus natifs de la version 7.0 », a suggéré M. Rosenwasser, chef de produit principal pour TypeScript chez Microsoft. Les développeurs peuvent accéder à TypeScript 6.0 via NPM à l'aide de la commande npm install -D typescript.
En dehors de cette évolution, TypeScript 6.0 apporte plusieurs changements importants dont un ajustement de la vérification des types pour les expressions de fonction dans les appels génériques, en particulier ceux survenant dans des expressions JSX génériques. « Cela permettra de détecter davantage de bogues dans le code existant, même si les développeurs pourraient constater que certains appels génériques nécessitent un argument de type explicite », a déclaré Daniel Rosenwasser.
Plusieurs autres changements
Par ailleurs, Microsoft a étendu la dépréciation de la syntaxe d'assertion d'importation de type import ... assert {...}) aux appels import() tels que import(..., { assert: {...}}). L’éditeur a également mis à jour les types DOM afin de refléter les dernières normes Web, en apportant notamment quelques ajustements aux API Temporal. De même, le langage rend moins sensible au contexte les fonctions sans this. Cela signifie que si this n’est jamais utilisé dans une fonction, elle n’est pas considérée comme sensible au contexte et que cette fonction sera prioritaire lors de l’inférence de types. La dernière itération introduit un drapeau appelé –stableTypeOrdering destiné à faciliter les migrations de TypeScript 6.0 vers la version 7.0.
Parmi les autres évolutions, il faut citer l’ajout du support de l’option es2025 pour les cibles target et lib même en l’absence de fonctionnalités supplémentaires dans la dernière déclinaison de la norme EcmaScript. Par ailleurs, le contenu de lib.dom.iterable.d.ts et lib.dom.asynciterable.d.ts est inclus dans lib.dom.d.ts. Les développeurs peuvent toujours référencer dom.iterable et dom.asynciterable dans le tableau "lib" d’un fichier de configuration, mais il s’agit désormais de fichiers vides. L’option lib de TypeScript permet aux utilisateurs de spécifier quelles déclarations globales possède un runtime cible. Enfin, dans TypeScript 6.0, l’utilisateur de module là où namespace était attendu est désormais fortement dépréciée. Ce changement était nécessaire car les blocs module constituent une proposition ECMAScript potentielle qui entrerait en conflit avec la syntaxe héritée de TypeScript.