édition quotidiennecurated dispatchespas de rewritediffusion à l'aubelecture longuepublication rarearchivé à viesilence, puis signal
news2026.04.30il y a 8 jours2 min de lecture

TypeScript 7.0 Beta : le compilateur réécrit en Go est 10 fois plus rapide

Microsoft publie la beta de TypeScript 7.0, compilateur entièrement réécrit en Go (Project Corsa). Gain mesuré de 10× sur VS Code (77s → 7,5s), déjà utilisé en production chez Figma, Notion, Slack et Vercel. La sémantique du langage reste inchangée.

#typescript#compiler#performance#microsoft
§

Le 21 avril 2026, Daniel Rosenwasser annonce TypeScript 7.0 Beta sur le blog officiel de l'équipe TypeScript chez Microsoft : le compilateur est désormais entièrement réécrit en Go. Ce projet, connu en interne sous le nom de Project Corsa, était en développement depuis début 2025. Il représente la rupture technologique la plus significative dans l'histoire du langage depuis sa création en 2012.

Pourquoi réécrire le compilateur en Go ?

Le compilateur TypeScript est auto-hébergé depuis l'origine : écrit en TypeScript, compilé vers JavaScript, exécuté par Node.js. Cette architecture a de l'élégance, mais elle plafonne les performances sur les grandes bases de code :

  • Le GC de V8 introduit des pauses imprévisibles sur les arborescences de types volumineuses
  • JavaScript n'offre pas de parallélisme mémoire partagée (les Worker Threads n'accèdent pas au même heap)
  • Le runtime Node.js ajoute un surcoût de démarrage incompressible pour le mode incrémental

Go apporte trois avantages structurels : exécution native compilée, goroutines pour le parallélisme multi-fichiers, et distribution en binaire statique unique sans dépendance runtime.

Les benchmarks sur des projets réels

ProjetTypeScript 6.0TypeScript 7.0 BetaGain
VS Code (1,5M lignes)77s7,5s×10,3
Sentry (codebase complète)133s16s×8,3
Démarrage éditeur (VS Code)9,6s1,2s×8

La consommation mémoire chute d'environ 65 %. Ces gains s'obtiennent même en compilation "cold" grâce au parallélisme natif — c'est la combinaison code natif + goroutines qui produit l'essentiel du gain, pas une optimisation algorithmique.

État fonctionnel de la beta

La beta n'est pas expérimentale : la parité fonctionnelle est largement atteinte.

Compilateur CLI : --incremental, project references, --build, --noEmit, --declaration sont tous portés et fonctionnels.

Language services (IDE) : complétion avec auto-imports, go-to-definition, find references, rename symbol, signature help, support complet des Project References.

Déjà en production ou en validation interne chez Bloomberg, Canva, Figma, Google, Lattice, Linear, Miro, Notion, Slack, Vanta, Vercel et VoidZero.

Installation

# Test immédiat sans modifier la configuration existante
npx tsgo --noEmit

# Installation stable en dev dependency
npm install @typescript/native-preview@beta

Le package tsgo coexiste avec tsc. La migration peut être progressive : garder l'ancienne installation en CI pendant que la beta est validée en local.

Ce qui ne change pas

TypeScript 7.0 est une traduction méthodique du compilateur TypeScript 6.0 en Go, pas une réécriture conceptuelle. La logique de vérification de types est structurellement identique à TypeScript 6.0. Les fichiers tsconfig.json, les règles de type, les messages d'erreur — tout reste compatible. Pour la grande majorité des projets, la migration se limite à changer la commande d'invocation.

Limites et points d'attention

  • Les plugins de transformation (ts-patch, certains loaders webpack) ne sont pas encore supportés dans cette beta
  • Les types conditionnels profonds ou récursifs complexes peuvent présenter des gains inférieurs aux benchmarks médians
  • --allowJs n'est pas encore entièrement supporté dans tous les cas
  • La date de TypeScript 7.0 stable n'est pas encore annoncée ; la roadmap dépend des remontées communautaires

Microsoft encourage explicitement les tests sur des projets réels dès aujourd'hui plutôt que d'attendre la version stable.

Source principale · Visual Studio Magazine · GitHub microsoft/TypeScript