←Tous les articles
Dim. 9 août 2026·4 min de lecture

🚀 TypeScript 7.0 : le compilateur passe au Go

Comparaison entre TypeScript 6 et TypeScript 7 : implémentation JS puis Go, watcher polling puis watcher Parcel, vérification mono-thread puis multithread

📚 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 :

ProjetTypeScript 6TypeScript 7Gain
VS Code125,7 s10,6 s11,9x
Sentry139,8 s15,7 s8,9x
Bluesky24,3 s2,8 s8,7x
Playwright12,8 s1,47 s8,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 typescript

Si 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/typescript6

Les 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 sans tsconfig.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: esnext et types: [] par dĂ©faut — un projet qui comptait sur la dĂ©couverte automatique des @types/* doit dĂ©sormais lister explicitement ["node", "jest"] etc.
  • rootDir vaut le dossier contenant le tsconfig.json : un projet dont les sources vivent hors de src/ doit le dĂ©clarer explicitement.
  • Suppressions dĂ©finitives : target: es5, downlevelIteration, les rĂ©solutions de modules classic/node (legacy), les formats amd/umd/systemjs, ainsi que baseUrl.
  • 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), @class qui 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.