TypeScript 5.7 est sorti fin 2024. Un an après, voici ce qui a réellement changé dans mon code au quotidien.
1. Path rewriting natif pour la compilation
Fini les hacks avec tsconfig-paths. TypeScript 5.7 peut maintenant réécrire les imports lors de la compilation via --rewriteRelativeImportExtensions. Un ./foo devient ./foo.js pour Node sans effort.
2. Not-allowed-in-enum
Les valeurs non-constantes dans les enums sont maintenant rejetées par défaut, ce qui évite des comportements bizarres qu'on observait en 5.5/5.6.
3. Améliorations inférence
TypeScript infère mieux les types quand vous chaînez des méthodes :
// 5.7 infère correctement sans annotations
const result = users
.filter(u => u.active)
.map(u => u.email)
.sort();
// result: string[]Petit gain, mais cumulé sur un codebase c'est significatif.
4. Isolated declarations
Le flag --isolatedDeclarations force l'annotation explicite de tous les types publics. Résultat : build 4x plus rapide sur monorepo avec tsc --build.
Contrainte : vous devez typer explicitement tous les retours publics. Lourd au début, salvateur en équipe à moyen terme.
5. Stage 3 decorators stabilisés
Les décorateurs nouvelle génération (stage 3) sont mûrs. Ça permet d'écrire :
class UserService {
@log
@cache(60)
async getUser(id: string) {
return db.users.find(id);
}
}Sans polyfills, sans Babel, sans experimental flags.
6. Nouveaux types utilitaires
NoInfer<T>pour éviter l'inférence automatique sur un paramètre.Awaited<T>stabilisé (déjà là avant mais patterns matures).
Ce que je n'utilise toujours pas
- Les template literal types complexes : puissants mais illisibles à 3 niveaux d'imbrication.
- Branded types pour les strings : j'utilise Zod à la place pour valider les entrées.
Mon tsconfig 2026
{
"compilerOptions": {
"target": "ES2022",
"module": "NodeNext",
"moduleResolution": "NodeNext",
"strict": true,
"noUncheckedIndexedAccess": true,
"noImplicitOverride": true,
"isolatedDeclarations": true,
"rewriteRelativeImportExtensions": true,
"verbatimModuleSyntax": true,
"allowImportingTsExtensions": true
}
}Migration depuis 5.4
Globalement indolore si votre code est propre. Les gros projets doivent s'attendre à des warnings isolatedDeclarations à traiter progressivement. Aucun breaking change majeur.