Annoncée le 26 juillet, la version bêta de TypeScript 5.6 fait suite à la version de production de TypeScript 5.5, publiée le mois dernier. Cette mise à jour de la variante fortement typée de JavaScript interdit les vérifications nulles et vraies sur la syntaxe qui ne varie jamais en termes de nullité ou de véracité.

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ées même si elles sont toujours vraies ou fausses.

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

interface BuiltinIterator { <T, TReturn = any, TNext = any> {

// ...

}

TypeScript 5.6 introduit aussi un type intrinsèque appelé BuiltinIteratorReturn et un indicateur de mode --strict appelé --strictBuiltinIteratorReturn. Lorsque les types BuiltinIterator sont utilisés dans des endroits comme lib.d.ts, ils sont toujours écrits avec un type BuiltinIteratorReturn pour TReturn.

Autres fonctionnalité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.

- Introduction d’une 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.

TypeScript 5.6 est accessible via NuGet ou via NPM en exécutant la commande npm install -D typescript@beta