Se rendre au contenu

TypeScript 6.0 est sorti

23 mars 2026 par
TypeScript 6.0 est sorti
Makersquad

Date de sortie : 23 mars 2026

Annonce officielle : Announcing TypeScript 6.0

TypeScript 6.0 est un jalon particulier : c’est la dernière version basée sur le compilateur JavaScript historique avant la réécriture complète en Go (TypeScript 7.0). Cette 6.0 sert de pont, avec beaucoup de dépréciations et de nouveaux défauts, pour préparer la migration.


Les nouveautés principales

Inférence améliorée pour les fonctions sans this

TypeScript détecte maintenant qu’une méthode n’utilise pas this et peut donc inférer les types à partir des autres arguments :

declare function callIt<T>(obj: {
  produce: (x: number) => T,
  consume: (y: T) => void,
}): void;

// Fonctionne maintenant avec la syntaxe méthode
callIt({
  consume(y) { return y.toFixed(); },
  produce(x: number) { return x * 2; },
});


Subpath imports avec #/

Support simplifié des imports internes Node.js sans préfixe supplémentaire :

{
  "imports": {
    "#/*": "./dist/*"
  }
}


Nouvelles APIs ES2025

Cible et lib es2025, avec les nouvelles APIs built-in :

// RegExp.escape
const escaped = RegExp.escape(userInput);
const regex = new RegExp(`\\b${escaped}\\b`, "g");

// Map.getOrInsert et getOrInsertComputed
const value = compilerOptions.getOrInsert("strict", true);

// Temporal (proposition stage 4)
const tomorrow = Temporal.Now.instant().add({ hours: 24 });

// Promise.try
const result = await Promise.try(() => maybeSync());


DOM consolidé

La lib dom inclut maintenant dom.iterable et dom.asynciterable par défaut :

// Avec "lib": ["dom"] seul, ça marche
for (const el of document.querySelectorAll("div")) {
  console.log(el.textContent);
}


Flag –stableTypeOrdering

Aide à diagnostiquer les différences de comportement entre TS 6.0 et 7.0 en utilisant l’ordre déterministe de 7.0.


Nouveaux défauts (breaking)

OptionAncien défautNouveau défaut
strictfalsetrue
modulecommonjsesnext
targetes5es2025
typestous les @types installés[]
rootDirinféré.

Beaucoup de projets devront au minimum ajouter explicitement "types": ["node"] et "rootDir": "./src".


Options dépréciées ou supprimées

  • target: es5 déprécié, ES2015 devient le minimum
  • --downlevelIteration supprimé
  • --moduleResolution node à remplacer par nodenext ou bundler
  • --moduleResolution classic supprimé
  • --module amd | umd | systemjs | none supprimé
  • --baseUrl déprécié, utiliser paths explicite
  • --outFile supprimé, utiliser un bundler
  • --esModuleInterop false et --allowSyntheticDefaultImports false ne sont plus désactivables
  • Syntaxe module namespace (utiliser namespace)
  • Import assert (utiliser with)

Un codemod ts5to6 est fourni pour automatiser une partie de la migration. L’option "ignoreDeprecations": "6.0" permet de masquer les warnings temporairement, mais ces options disparaitront complètement en TS 7.0.


Autres améliorations

  • --moduleResolution bundler compatible avec --module commonjs
  • Erreur si des fichiers sont passés en ligne de commande alors qu’un tsconfig.json existe (utiliser --ignoreConfig pour contourner)


À retenir

TS 6.0 n’est pas une release à ignorer. Les changements de défauts (strict true, ES2025) vont casser silencieusement beaucoup de configurations existantes. Prévoyez un passage en CI avant la mise à jour. TypeScript 7.0 en Go est annoncé comme proche, avec des previews disponibles. La 6.0 est le moment pour préparer son code : ce qui passe en 6.0 avec "ignoreDeprecations": "6.0" cassera en 7.0.


Échanger avec un expert TypeScript

Nous revenons vers vous sous 24h.


Chez Makersquad, nous accompagnons nos clients dans le développement d’applications robustes et maintenables grâce à TypeScript. Que ce soit pour structurer un nouveau projet, migrer un codebase existant ou améliorer la qualité et la sécurité de votre application, notre équipe met son expertise TypeScript à votre service.

TypeScript 5.9 est sorti