DevOps & Infrastructure

TypeScript 7 : réécriture en Go et performances x10, ce que ça change vraiment

9 juillet 2026 Mehdi 06:39
TypeScript 7 : réécriture en Go et performances x10, ce que ça change vraiment

TypeScript 7 vient de sortir officiellement, et c’est probablement la version la plus structurante depuis la création du langage. Si vous gérez des projets TypeScript à grande échelle, vous allez vouloir comprendre ce qui change et ce que ça implique en pratique.

TypeScript 7 : une réécriture complète, pas une mise à jour

Le 8 juillet 2026, Microsoft a annoncé TypeScript 7.0. Derrière ce numéro de version se cache une décision radicale : le compilateur et le serveur de langage ont été entièrement réécrits en Go. Ce n’est pas un patch de performance, c’est un changement d’architecture fondamental.

Le choix de Go est notable. Dans l’écosystème des outils de build, Rust est souvent la référence pour la performance native. Microsoft a préféré Go, un langage déjà utilisé par esbuild pour des raisons similaires. Le résultat annoncé : des gains entre 8x et 12x sur les builds complets, grâce au code natif, à la mémoire partagée et au multithreading.

Des chiffres mesurés sur des projets réels

L’annonce ne repose pas sur des benchmarks artificiels. Microsoft a publié des données issues de projets open source connus.

Voici les temps de build comparés entre TypeScript 6 et TypeScript 7 :

  • VS Code : 125,7s contre 10,6s, soit 11,9x plus rapide
  • Sentry : 139,8s contre 15,7s, soit 8,9x plus rapide
  • Bluesky : 24,3s contre 2,8s, soit 8,7x plus rapide
  • Playwright : 12,8s contre 1,47s, soit 8,7x plus rapide

La consommation mémoire baisse aussi. Bluesky passe de 1,8 Go à 1,3 Go (-26 %). VS Code descend de 5,2 Go à 4,2 Go (-18 %). Ce ne sont pas des gains anecdotiques.

Dans l’éditeur, l’impact est encore plus frappant. Sur la base de code VS Code, le temps entre l’ouverture d’un fichier et l’affichage de la première erreur est passé de 17,5 secondes à moins de 1,3 seconde.

Parallélisation native : le vrai moteur des gains

TypeScript 7 parallélise plusieurs étapes du build : le parsing, la vérification de types et l’émission. Ce n’est pas juste du multithreading ajouté en surface, c’est une refonte de la chaîne de compilation.

Deux nouveaux flags permettent de contrôler ce comportement :

  • --checkers : nombre de workers de vérification de types (défaut : 4)
  • --builders : nombre de builders parallèles pour les références de projets
  • --singleThreaded : désactive toute parallélisation, utile pour le débogage ou les environnements contraints

Avec --checkers 8, VS Code passe à 7,51s pour un gain de 16,7x. Les gains dépendent du nombre de coeurs disponibles. En CI avec peu de ressources, réduire ce paramètre peut s’avérer plus efficace.

Cohabitation TypeScript 7 et TypeScript 6 : comment ça marche

TypeScript 7.0 ne livre pas encore d’API publique. Celle-ci est prévue pour TypeScript 7.1. En attendant, Microsoft a publié un package de compatibilité : @typescript/typescript6. Il fournit un exécutable tsc6 et réexporte l’API TypeScript 6.0, ce qui permet à des outils comme typescript-eslint de continuer à fonctionner sans modification.

La configuration recommandée dans package.json :

{
  "devDependencies": {
    "@typescript/native": "npm:typescript@^7.0.2",
    "typescript": "npm:@typescript/typescript6@^6.0.2"
  }
}

Cette cohabitation est volontaire et documentée. Elle répond à un besoin réel : certains outils dépendent encore de l’API TypeScript 6. Ce n’est pas un signe de fragilité, c’est une stratégie de transition maîtrisée.

Nouveaux comportements et changements de configuration

TypeScript 7 adopte les défauts introduits en 6.0. Plusieurs options changent de valeur par défaut, deux méritent une attention particulière :

  • rootDir passe à ./ par défaut. Les projets où tsconfig.json est en dehors de src devront le spécifier explicitement.
  • types passe à [] par défaut. Les déclarations globales (@types/node, @types/jest, etc.) devront être listées explicitement dans la configuration.

Certaines options deviennent des erreurs bloquantes : target: es5, moduleResolution: node/node10, baseUrl, ou encore module: amd. La migration depuis TypeScript 6.0 est directe. Depuis des versions antérieures, il faudra passer par 6.0 d’abord.

Ce qu’il faut retenir

  • TypeScript 7 est une réécriture complète en Go avec des gains de performance réels entre 8x et 12x sur des projets de production mesurés.
  • La parallélisation native du parsing, de la vérification de types et de l’émission est le moteur principal de ces gains.
  • L’API publique n’est pas encore disponible en 7.0 : un package de compatibilité @typescript/typescript6 permet une cohabitation propre avec les outils qui en dépendent.
  • Les changements de défauts sur rootDir et types sont les points de friction les plus courants lors de la migration.
  • TypeScript 7 est disponible dès maintenant via npm install -D typescript. Les builds de nuit continueront sous le tag typescript@next.

Si vous travaillez sur un projet TypeScript conséquent, cette version mérite une évaluation rapide dans un environnement de test. Les retours des équipes Slack, Canva, Figma ou Vanta sont suffisamment cohérents pour que le risque soit limité.

Vous avez déjà testé TypeScript 7 sur votre codebase ? Les questions sur la migration ou la configuration avancée, c’est le genre de sujet dont je parle régulièrement ici. Suivez le blog pour la suite.

Sources

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *