Microsoft a livré TypeScript 7.0 cet été, après le lancement de Project Corsa en mars 2025. Le compilateur était écrit en TypeScript depuis une dizaine d’années et s’exécutait sur Node. Son implémentation fonctionne désormais en Go. Microsoft annonce des builds complets 8 à 12 fois plus rapides sur de grands projets réels. Le chargement des projets, les suggestions, la recherche de toutes les références et les diagnostics dans l’éditeur gagnent aussi en vitesse. Les types, les fichiers tsconfig et les messages d’erreur restent inchangés.
npm install -D typescript@latest
time npx tsc --noEmitLes premiers tests ont porté sur VS Code avec 1.5M lignes. Le temps de build est passé de 77.8s à 7.5s, soit un gain de 10.4x. Avec 356K lignes, Playwright est passé de 11.1s à 1.1s, soit 10.1x. TypeORM, sur 270K lignes, est passé de 17.5s à 1.3s, soit 13.5x. date-fns, avec 104K lignes, est passé de 6.5s à 0.7s, soit 9.5x. Le chiffre de 12x correspond au haut de la fourchette annoncée par Microsoft. VS Code dépassait légèrement 10x dans ces premiers essais. Les résultats dépendent de la taille du projet et du nombre de cœurs du processeur. Les projets plus volumineux et les machines dotées de davantage de cœurs se rapprochent généralement de la valeur haute.
Go a été retenu pour un portage de compatibilité. L’équipe a parcouru le code existant fichier par fichier afin de conserver son comportement, y compris ses bugs. Le graphe d’objets du compilateur relie les nœuds à leurs parents et à leurs enfants, et les symboles à leurs déclarations. Go permet de représenter ces liens directement avec des pointeurs et des slices. Rust pourrait utiliser Rc<RefCell<Node>> et des références Weak pour cette structure. Cette voie aurait demandé une conception différente du compilateur. Le ramasse-miettes de Go correspond aussi aux hypothèses mémoire de l’implémentation JavaScript. Les goroutines et la mémoire partagée assurent le traitement parallèle qui produit une autre partie du gain.
TypeScript 6 exécutait parse, bind, check et emit dans un seul thread Node. TypeScript 7 répartit le parsing et le checking sur plusieurs voies, avec une mémoire partagée, avant l’emit. Le code natif explique une partie de l’amélioration. Le parallélisme fournit le reste.
La mise à niveau utilise npm install -D typescript@latest. La commande time npx tsc --noEmit permet de comparer la durée avant et après le changement.
TypeScript 7.0 ne fournit pas encore d’API programmatique stable. Microsoft la prévoit pour 7.1. Les outils qui appellent directement le compilateur ne peuvent donc pas encore utiliser la nouvelle implémentation. Cela concerne notamment typescript-eslint et les outils associés à Vue, Svelte, Astro, MDX et aux templates Angular, qui restent sur TypeScript 6 pour le moment. Les anciennes dépréciations déclenchent désormais des erreurs bloquantes. Le mode strict est activé par défaut.




Commentaires
Pas encore de commentaire — écris le premier.
Lance la discussion
Pas de compte ni de mot de passe — saisis simplement ton adresse e-mail et nous t’envoyons un lien de connexion à usage unique. Première visite ? Tout se met en place automatiquement.
Ton évaluation sera appliquée automatiquement après ta connexion.
Vérifie ta boîte mail
Nous avons envoyé un lien de connexion à …. Ouvre-le sur cet appareil — cet onglet te connectera automatiquement.
Rien reçu ? Vérifiez le dossier spam — et marquez le message « Non spam » pour qu'il arrive directement la prochaine fois.