Cette mise à jour de TypeScript 5.6, fait passer la variante fortement typée du langage JavaScript de Microsoft au stade de version Release Candidate (RC). Pour la RC, Microsoft a renommé un certain nombre de nouveaux types et est revenu sur une modification apportée à la recherche de fichiers tsconfig.json par le service de langage TypeScript. Ces fonctionnalités s'ajoutent à celles de la version bêta précédente qui incluent l'interdiction des vérifications nulles et vraies sur la syntaxe qui ne varie jamais en termes de nullité ou de véracité.

En annulant le changement dans la façon dont le service de langage recherche les fichiers tsconfig.json, la RC résout une situation dans laquelle le service de langage pouvait continuer à traquer tous les fichiers de projet possibles nommés tsconfig.json pouvant contenir un fichier. Comme cette situation pouvait conduire à l'ouverture de nombreux projets référencés, le comportement a été annulé. Mais Microsoft étudie les moyens de rétablir ce comportement dans TypeScript 5.7.

Renommage de types

Par ailleurs, l’éditeur a indiqué que plusieurs nouveaux types avaient été renommés depuis la version bêta. Auparavant, TypeScript fournissait un seul type appelé BuiltinInterator pour décrire chaque valeur soutenue par Iterator.prototype. Ce type a été renommé IteratorObject dans la RC, et a reçu un ensemble différent de paramètres de type. Il ajoute également plusieurs sous-types tels que ArrayIterator et MapIterator.

Toujours dans la RC, un nouveau drapeau appelé --stopOnBuildErrors a été ajouté pour le mode --build qui arrête les builds si un projet se construit avec des erreurs. De nouvelles fonctionnalités d'édition ont également été ajoutées, notamment le support direct des caractères de validation et des modèles d'exclusion pour les auto-importations.

D’autres évolutions

Dans la version bêta précédant cette RC, TypeScript 5.6 avait introduit différents changements. Pour les vérifications null et true non autorisées, le compilateur génère à présent des erreurs lorsqu'il peut déterminer syntaxiquement qu'une vérification true ou null sera toujours évaluée d'une manière spécifique. Selon Microsoft, « de très nombreux bogues » pourraient être détectés de cette manière. Certaines expressions sont toujours autorisées même si elles sont vraies ou nulles. Plus précisément, true, false, 0 et 1 sont toujours autorisés même s'ils sont toujours vrais ou faux.

TypeScript 5.6 introduit aussi un type itérable natif ou intégré appelé BuiltinIterator. Il est défini comme suit :

interface BuiltinIterator { {

    // ...

}

Autres nouveautés et améliorations de TypeScript 5.6 :

- Introduction d’une option de compilation appelée --noCheck qui permet aux développeurs d'ignorer la vérification de type pour tous les fichiers d'entrée. Elle évite ainsi les vérifications de type inutiles lors de l'analyse sémantique nécessaire à l'émission des fichiers de sortie.

- TypeScript 5.6 introduit une nouvelle fonctionnalité appelée « region-prioritized diagnostics » ou « region-prioritized checking ». Au lieu de demander des diagnostics pour un ensemble de fichiers, les éditeurs peuvent désormais fournir une région pertinente d'un fichier donné. L'idée est qu'il s'agit généralement de la région du fichier qui est actuellement visible par l'utilisateur.

- Auparavant, les propriétés calculées marquées par override ne vérifiaient pas correctement l'existence d'un membre de la classe de base. De même, si les développeurs utilisaient noImplicitOverride, ils n'obtenaient pas d'erreur s'ils oubliaient d'ajouter un modificateur override à une propriété calculée. TypeScript 5.6 vérifie dorénavant correctement les propriétés calculées dans les deux cas.

Annoncée le 23 août, la RC de TypeScript 5.6 fait suite à la version bêta du 26 juillet. Elle est accessible via NPM en exécutant npm install -D typescript@rc. La première version stable de TypeScript 5.6 est attendue dans quelques semaines. TypeScript 5.6 fait suite à TypeScript 5.5, publié le 20 juin.