Menu
Dossiers

TypeScript 7.1 en bêta : compilateur plus rapide, ES2026 stable et nouvelle API

Microsoft a publié le 20 octobre 2026 la bêta de TypeScript 7.1. C’est la première évolution fonctionnelle de la branche 7, celle du compilateur réécrit en code natif, que l’équipe présentait à sa sortie comme un portage « 10 fois plus rapide ». Cette version ajoute de nouvelles syntaxes d’import, rend stable la cible ES2026 et ouvre surtout une API officielle pour les outils. Les mesures publiées montrent aussi un nouveau gain de vitesse et de mémoire sur de gros projets.

Comment l’essayer #

La bêta s’installe comme d’habitude via npm, avec la commande npm install -D typescript@beta. L’annonce officielle de Daniel Rosenwasser précise la suite du calendrier : une version candidate est attendue environ un mois après la bêta, et la version finale doit suivre peu après. Aucune date précise n’est donnée.

Un compilateur encore plus rapide #

Pour un projet qui manipule beaucoup de données et de scripts, c’est souvent le chiffre le plus parlant. Microsoft a mesuré le temps de vérification des types, avec quatre threads et l’option --noEmit, sur cinq bases de code connues. Le gain va de 13,2 % sur Bluesky à 46,6 % sur la documentation de MUI, qui passe de 22,2 à 11,9 secondes. Le dépôt de VS Code descend de 21,6 à 17,7 secondes, celui de Sentry de 19,6 à 15,1 secondes.

À lire Rust 1.99.1 : trois régressions corrigées, dont un bug de retour bool en FFI sur x86_64

La consommation mémoire baisse dans les mêmes proportions : de 15,8 % pour Bluesky à 49,6 % pour MUI. Sur une intégration continue qui vérifie les types à chaque commit, ce type d’écart se traduit directement en minutes gagnées.

Les nouveautés du langage #

Des attributs d’import dans les modules ambiants

On peut désormais déclarer des modules génériques qui portent des attributs d’import, par exemple declare module "*" with { type: "css" }. Les types text et bytes sont aussi pris en charge. C’est pratique pour typer proprement l’import de fichiers non JavaScript, comme un CSV ou un JSON brut lu par un script d’analyse. Attention toutefois : TypeScript ne vérifie pas que le fichier existe sur le disque. Une erreur de chemin ne se verra qu’à l’exécution ou au moment du bundle.

Les imports de phase « source »

TypeScript 7.1 prend en charge la syntaxe import source X from "..." et sa forme dynamique import.source(). Le cas d’usage principal est WebAssembly : l’objet importé est un WebAssembly.Module qu’on peut passer à WebAssembly.instantiate. Il faut pour cela régler --module sur esnext, nodenext ou preserve. Pour du JavaScript classique, la fonctionnalité reste largement non prise en charge.

ES2026 devient une cible stable

Les options --target es2026 et --lib es2026 sont désormais stables. Plusieurs ajouts intéresseront directement ceux qui traitent des données. Math.sumPrecise() additionne une série de nombres sans les erreurs d’arrondi cumulées des flottants. Array.fromAsync() construit un tableau à partir d’un flux asynchrone. JSON.rawJSON() permet de sérialiser des nombres sans perte de précision. On trouve aussi Iterator.concat(), Error.isError() et les méthodes getOrInsert() sur les Map.

À lire PDF, ZIP, Mo et Go : le petit manuel des fichiers du quotidien

Côté esnext, encore expérimental, arrivent notamment Promise.allKeyed, Iterator.zip et Iterator.prototype.chunks. Ce dernier découpe un itérateur en lots, un besoin courant pour envoyer des données par paquets à une API.

Une API officielle pour les outils #

C’est le changement le plus structurant pour l’écosystème. Depuis le passage au compilateur natif, les outils qui s’appuyaient sur l’ancienne API JavaScript attendaient une solution de remplacement. La bêta 7.1 expose de nouveaux points d’entrée : typescript/sync et typescript/async pour piloter le compilateur, typescript/fs pour fournir un système de fichiers, et typescript/ast pour manipuler l’arbre syntaxique.

Les objets principaux sont « disposables » et se gèrent avec le mot-clé using. L’API ne lit pas elle-même le tsconfig.json : c’est à l’outil de fournir sa configuration.

Vue, Svelte et Astro mieux pris en charge

Autre nouveauté, les « content mappers » permettent de brancher dans le tsconfig.json un module qui traduit des formats embarqués, comme les fichiers Vue, Svelte ou Astro. En ligne de commande, il faut ajouter l’option --runExternalCode, puisqu’il s’agit d’exécuter du code tiers. Dans VS Code, ces modules demandent que l’espace de travail soit approuvé.

À lire Comment modifier un PDF gratuitement ?

Deux changements qui peuvent casser un build #

L’annonce, relayée le lendemain par Programmez!, le reconnaît : la mise à jour n’est pas totalement transparente. Les types DOM de lib.d.ts sont désormais générés, ce qui peut faire apparaître de nouvelles erreurs. Les contraintes sur les paramètres de type distributifs deviennent aussi plus strictes dans les branches conditionnelles. Un type qui compilait sous 7.0 peut désormais renvoyer une erreur du type « Type ‘B’ does not satisfy the constraint ‘A’ ».

Pour un projet en production, le plus prudent est de tester la bêta dans une branche dédiée, de mesurer le gain de temps de compilation sur sa propre base de code, et de corriger les éventuelles erreurs de typage avant l’arrivée de la version candidate.

FluxTracker est édité de façon indépendante. Soutenez la rédaction en nous ajoutant dans vos favoris sur Google Actualités :

Dans la même rubrique : Programmation

A decouvrir : agence web 123web · consultant SEO Paris