TypeScript 6.0 est sorti : la dernière version en JavaScript avant le grand saut vers Go

Microsoft a officiellement publié en ce début de semaine TypeScript 6.0, et cette release a une saveur toute particulière : il s'agit en effet de la dernière version du compilateur écrite en TypeScript — celui-là même qui, depuis quatorze ans, compile vers JavaScript pour s'exécuter.
Après quatorze ans de bons et loyaux services, ce compilateur historique tire sa révérence pour laisser place à une réécriture complète en Go.
Sans surprise, TypeScript 6.0 joue avant tout les déménageurs : déprécier tout ce qui ne sera pas porté dans TypeScript 7.0, ajuster les valeurs par défaut, et laisser quelques mois aux développeurs pour adapter leurs projets avant l'arrivée du compilateur natif, qui promet du multi-threading en mémoire partagée et des performances jusqu'à dix fois supérieures.
Le ménage avant le déménagement
Si vous attendiez une version bourrée de nouvelles features révolutionnaires, modérez donc vos attentes. L'essentiel de TypeScript 6.0 consiste à préparer le terrain pour la v7.
Et ça passe par une liste de dépréciations longue comme un node_modules.
Parmi les victimes : target: es5 (IE est mort depuis 4 ans, il est temps de lâcher l'affaire), --outFile (les bundlers font ça mieux depuis des années), --moduleResolution node (alias node10, qui n'a plus rien à voir avec le Node.js actuel), --baseUrl, et les modules AMD, UMD et SystemJS.
En gros, tout ce qui sent (bon) les années 2012-2015 passe à la trappe.
Les valeurs par défaut changent aussi, et pas qu'un peu. strict passe à true, target à es2025, module à esnext.
Traduction : si vous faites un npm install -D typescript suivi d'un tsc sans toucher à votre config, attendez-vous à une avalanche d'erreurs là où tout compilait sans broncher avant. Rien de dramatique une fois les ajustements faits, mais le premier tsc post-mise à jour risque de piquer un peu.
Autre piège : types passe par défaut à [], ce qui signifie que TypeScript n'ira plus fouiller automatiquement dans node_modules/@types.
Si votre tsc vous crache des "Cannot find name 'process'" à la pelle, ajoutez "types": ["node"] (ou ["node", "jest"], selon vos besoins) dans votre tsconfig.json. Bonus : Microsoft affirme que ce seul changement améliore les temps de build de 20 à 50%.
Comment survivre à la mise à jour

La bonne nouvelle, c'est que toutes ces dépréciations peuvent être temporairement ignorées en ajoutant "ignoreDeprecations": "6.0" dans votre tsconfig.json.
La mauvaise, c'est que TypeScript 7.0 ne supportera aucune de ces options, alors autant s'y mettre maintenant.
En pratique, la plupart des projets devront retravailler quelques lignes de config pour expliciter ce qui était auparavant inféré ou inclus par défaut. L'équipe TypeScript met à disposition un outil expérimental (en ligne de commande), ts5to6, qui ajuste automatiquement certains paramètres de votre tsconfig.json .
Les vraies nouveautés (il y en a quand même)
Au milieu de ce grand nettoyage de printemps, TypeScript 6.0 apporte malgré tout quelques ajouts concrets.
Le support de l'API Temporal permet de manipuler les dates sans passer par l'enfer qu'est l'objet Date natif.
Les types pour Map.getOrInsert et Map.getOrInsertComputed arrivent aussi, issus de la proposition "upsert" récemment standardisée. De quoi simplifier le classique chercher une clé, l'initialiser si elle n'existe pas, le tout en un seul appel.
Côté résolution de modules, TypeScript supporte désormais les subpath imports commençant par #/ (un ajout récent de Node.js) et autorise la combinaison --moduleResolution bundler avec --module commonjs, ce qui facilite la migration depuis le désormais déprécié --moduleResolution node.
Le flag --stableTypeOrdering mérite une mention : il aligne l'ordre d'affichage des types de la v6 sur celui de la v7. Utile si vous comparez les sorties des deux compilateurs pendant votre migration. Attention toutefois, Microsoft prévient que ce flag peut ralentir le type-checking jusqu'à 25%.
TypeScript 7.0 : plus proche qu'on ne le pense
La vraie star, c'est évidemment la v7. Et le message de Microsoft est assez direct : TypeScript 7.0 serait très proche de la ligne d'arrivée.
Les nightly builds sont déjà disponibles via npm install -D @typescript/native-preview, et une extension VS Code permet de les tester directement dans l'éditeur. L'équipe parle d'une release stable "dans quelques mois" et affirme observer une adoption large en interne chez Microsoft sur des codebases massives.
Le gros morceau technique de la v7, c'est le type-checking parallèle. Plusieurs checkers analysent le code simultanément, ce qui exploite enfin les architectures multi-cœurs pour la vérification de types. C'est précisément pour ça que l'ordre interne des types change entre la v6 et la v7 (d'où le flag --stableTypeOrdering mentionné plus haut).
Pour rappel, lors de l'annonce initiale de la réécriture en mars 2025, Microsoft avait démontré que la compilation de VS Code (1,5 million de lignes) passait de 77 secondes à 7,5 secondes avec le nouveau compilateur Go. Un facteur 10 qui explique pourquoi toute l'équipe est focalisée sur cette transition.
TypeScript 6.0 est disponible dès maintenant via npm install -D typescript. Si votre projet compile sans warning après la mise à jour, vous faites partie des chanceux. Pour les autres, le tsconfig.json n’attend que vous ! 😉
À propos de l'auteur
Nicolas Lecointre
Chief Happiness Officer des développeurs, ceinture noire de sudo. Pour rire, j'ai créé Les Joies du Code. J'utilise Vim depuis 10 ans parce que je sais pas comment le quitter.
À lire également

Passbolt : le gestionnaire de mots de passe open source que votre équipe mérite vraiment
Je connais l’histoire, vous la connaissez, on la connaît tous. Le stagiaire qui est resté six mois, qui a fini par avoir accès à un peu (beaucoup) plus de choses...
Articles similaires


Des neurones humains cultivés en laboratoire jouent à DOOM (oui, vraiment.)

Pour surfer sur la crise, un développeur crée un Démineur sur le détroit d'Hormuz


TypeScript devient le langage le plus utilisé sur GitHub

Des neurones humains cultivés en laboratoire jouent à DOOM (oui, vraiment.)

Pour surfer sur la crise, un développeur crée un Démineur sur le détroit d'Hormuz

TypeScript bientôt 10 fois plus rapide grâce à Go
Plus de contenu

Quand j'obtiens enfin les droits d'admin sur la machine

Voilà c'est ça qu'on veut

Quand je me lance sur ma dixième session de debug de la journée
Quand j'essaie de coder alors que j'ai pas encore pris mon premier café de la journée

Quand je corrige le bug d'un collègue en seulement 2 minutes

Quand je cherche d'où vient l'erreur dans mon code
Quand j'ouvre le projet legacy que je dois reprendre
Quand un nouveau bug survient juste après ma correction

Quand j'obtiens enfin les droits d'admin sur la machine

Voilà c'est ça qu'on veut

Quand je me lance sur ma dixième session de debug de la journée
Quand j'essaie de coder alors que j'ai pas encore pris mon premier café de la journée

Quand je corrige le bug d'un collègue en seulement 2 minutes


