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)
| Option | Ancien défaut | Nouveau défaut |
|---|---|---|
| strict | false | true |
| module | commonjs | esnext |
| target | es5 | es2025 |
| types | tous les @types installés | [] |
| rootDir | infé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.