đ TypeScript 7.0 : le compilateur passe au Go

đ Introduction
Le 8 juillet 2026, lâĂ©quipe TypeScript a livrĂ© la version 7.0, et ce nâest pas une release comme les autres : câest la premiĂšre fois en plus de dix ans que le compilateur change de langage dâimplĂ©mentation. Exit le TypeScript historique Ă©crit en JavaScript, place Ă un portage natif en Go, surnommĂ© tsgo.
Le projet nâest pas sorti de nulle part. TypeScript 6.0, publiĂ© en mars 2026, avait explicitement jouĂ© le rĂŽle de « pont » : la plupart de ses changements de configuration nâavaient dâautre but que de prĂ©parer la bascule vers ce nouveau moteur. TypeScript 7.0 est donc lâaboutissement de cette transition, avec un objectif simple : diviser les temps de build par 8 Ă 12, sans rien changer au comportement de vĂ©rification de types que des millions de projets utilisent dĂ©jĂ .
đ Quâest-ce qui change concrĂštement cĂŽtĂ© performance ?
Les chiffres publiĂ©s dans lâannonce officielle, mesurĂ©s sur des projets rĂ©els, donnent une idĂ©e de lâampleur du gain :
| Projet | TypeScript 6 | TypeScript 7 | Gain |
|---|---|---|---|
| VS Code | 125,7 s | 10,6 s | 11,9x |
| Sentry | 139,8 s | 15,7 s | 8,9x |
| Bluesky | 24,3 s | 2,8 s | 8,7x |
| Playwright | 12,8 s | 1,47 s | 8,7x |
La consommation mĂ©moire baisse aussi de 6 Ă 26 % selon les projets. Mais le changement le plus perceptible au quotidien est ailleurs : lâouverture dâun fichier contenant des erreurs dans VS Code, qui pouvait prendre 17,5 secondes avant que lâĂ©diteur ne signale les problĂšmes, tombe sous 1,3 seconde. Le mode --watch a lui aussi Ă©tĂ© reconstruit, avec un portage en Go du watcher de Parcel, pour Ă©liminer le polling coĂ»teux sur les gros monorepos chargĂ©s en node_modules.
𧩠Un portage, pas une réécriture
Câest le point le plus important Ă comprendre pour faire confiance Ă cette migration : le code Go nâa pas Ă©tĂ© Ă©crit Ă partir dâune feuille blanche. LâĂ©quipe lâa mĂ©thodiquement portĂ© depuis lâimplĂ©mentation JavaScript existante, fonction par fonction, en gardant une logique de type-checking structurellement identique Ă TypeScript 6.0. Le rĂ©sultat a ensuite Ă©tĂ© confrontĂ© Ă la suite de tests accumulĂ©e en une dĂ©cennie, puis testĂ© en conditions rĂ©elles chez des entreprises comme Bloomberg, Figma ou Google avant la beta.
ConcrĂštement, lâexĂ©cutable sâappelle tsgo et son dĂ©veloppement se suit sur le dĂ©pĂŽt microsoft/typescript-go, distinct du dĂ©pĂŽt historique TypeScript.
đ ïž Installer et faire coexister les deux versions
Lâinstallation ne change pas :
npm install -D typescriptSi un projet a besoin de garder temporairement TypeScript 6.0 en parallĂšle (le temps quâun outil tiers rattrape son retard, par exemple), un alias de package permet la coexistence :
npm install -D typescript@npm:@typescript/typescript6Les builds nightly, eux, restent disponibles via typescript@next.
CÎté ligne de commande, quatre nouveaux flags pilotent le parallélisme du compilateur, qui tire justement parti du multithreading à mémoire partagée offert par Go :
--checkers [nombre]â nombre de workers de vĂ©rification de types (4 par dĂ©faut)--builders [nombre]â nombre de constructeurs parallĂšles pour les project references--singleThreadedâ dĂ©sactive toute parallĂ©lisation--ignoreConfigâ permet de lancer le compilateur sanstsconfig.json
â ïž Quelques prĂ©cautions avant de migrer
TypeScript 7.0 durcit des dĂ©fauts dĂ©jĂ annoncĂ©s en 6.0 comme transition, et cette fois ils sâappliquent pour de bon :
strict: true,module: esnextettypes: []par dĂ©faut â un projet qui comptait sur la dĂ©couverte automatique des@types/*doit dĂ©sormais lister explicitement["node", "jest"]etc.rootDirvaut le dossier contenant letsconfig.json: un projet dont les sources vivent hors desrc/doit le dĂ©clarer explicitement.- Suppressions dĂ©finitives :
target: es5,downlevelIteration, les résolutions de modulesclassic/node(legacy), les formatsamd/umd/systemjs, ainsi quebaseUrl. - Le typage des littéraux de template change pour respecter Unicode : découper
`${infer Head}${infer Tail}`sur une chaĂźne commençant par un emoji renvoie dĂ©sormais lâemoji entier, plus une paire de substituts UTF-16 coupĂ©e en deux. - CĂŽtĂ© JSDoc pour les projets en JavaScript pur, plusieurs patterns disparaissent :
@enum(remplacé par@typedef),@classqui ne génÚre plus de constructeur, ou la syntaxe de fonction façon Closure.
Deux limites sont Ă connaĂźtre avant de basculer un projet entier. Dâabord, il nây a pas encore dâAPI programmatique : les outils qui embarquent TypeScript dans un autre langage de template â Vue (Volar), Astro, MDX, Svelte, ou les templates Angular â doivent continuer Ă tourner sur TypeScript 6.0 en attendant la version 7.1, qui doit combler ce manque. Ensuite, lâintĂ©gration Ă©diteur est encore en rodage : VS Code passe par une extension dĂ©diĂ©e en attendant un support natif, tandis que Visual Studio active TypeScript 7 automatiquement selon lâespace de travail.
Si votre projet touche Ă lâun de ces Ă©cosystĂšmes, jetez un Ćil Ă notre article sur la migration dâAstro 5 vers Astro 6 avant de faire le grand saut : mieux vaut vĂ©rifier la compatibilitĂ© de la chaĂźne dâoutils avant de changer le compilateur sous ses pieds.
đ Conclusion
TypeScript 7.0 tient une promesse rare dans lâĂ©cosystĂšme JS : un gain de performance massif sans rien casser cĂŽtĂ© sĂ©mantique. Pour un projet Node ou TypeScript pur â un NestJS ou un AdonisJS par exemple, deux frameworks qui vivent et respirent le typage strict â la migration se limite Ă ajuster deux ou trois options de configuration pour un gain de build Ă deux chiffres. Si votre stack dĂ©pend dâun outil basĂ© sur Volar (Vue, Astro, Svelte), en revanche, patientez sur TypeScript 6.0 jusquâĂ la 7.1 et son API programmatique. Câest aussi un signal de plus sur la tendance de fond de lâoutillage JS : aprĂšs Bun face Ă Node, câest au tour du compilateur TypeScript de troquer le JavaScript pour un langage natif au nom de la vitesse.
đ Liens utiles
/faq
Questions fréquentes
Qu'est-ce que tsgo ?
+
C'est le nom du binaire natif du compilateur TypeScript 7.0, écrit en Go, qui remplace progressivement l'ancien tsc écrit en JavaScript. Son développement est suivi sur le dépÎt microsoft/typescript-go.
TypeScript 7.0 change-t-il les rÚgles de vérification de types ?
+
Non. Le code Go a été porté méthode par méthode depuis TypeScript 6.0, pas réécrit de zéro, et sa logique de type-checking est structurellement identique. L'équipe l'a validé sur la suite de tests accumulée depuis dix ans.
Puis-je utiliser TypeScript 7.0 avec Vue, Astro ou Svelte dĂšs maintenant ?
+
Pas encore pour l'intégration éditeur : ces écosystÚmes reposent sur des outils comme Volar qui ont besoin d'une API programmatique, absente de TypeScript 7.0 et prévue pour la version 7.1. Le compilateur en ligne de commande, lui, fonctionne déjà sur du TypeScript pur.
Comment migrer un projet vers TypeScript 7.0 ?
+
Installez la nouvelle version via npm, en gardant TypeScript 6.0 disponible sous un alias si besoin de coexistence, puis passez en revue les options supprimées (target es5, downlevelIteration, résolution de modules classic) et déclarez explicitement types et rootDir dans le tsconfig.json.