Date de sortie : 22 novembre 2024
Documentation officielle : Announcing TypeScript 5.7
TypeScript 5.7 améliore la détection de bugs dans les fonctions imbriquées et facilite la transition vers ESM avec la réécriture automatique des extensions d’import.
Les nouveautés principales
Détection des variables jamais initialisées
TypeScript signale les erreurs quand une variable est déclarée mais jamais assignée, même dans des contextes de fonctions imbriquées :
function setup() {
let handler: () => void;
function register() {
// handler est utilisé ici...
handler(); // Erreur ! 'handler' n'est jamais initialisé
}
// ... mais jamais assigné
register();
}
Réécriture des extensions d’import
Le flag --rewriteRelativeImportExtensions réécrit automatiquement les extensions .ts/.tsx en .js/.jsx dans les imports relatifs :
// Ce que vous écrivez
import { helper } from "./utils.ts";
// Ce que TypeScript émet
import { helper } from "./utils.js";
Parfait pour les projets qui veulent utiliser les extensions .ts directement dans le code source sans casser la résolution de modules.
Support ES2024
Nouveau target --target es2024 et --lib es2024 avec les API récentes :
const items = [
{ type: "fruit", name: "pomme" },
{ type: "légume", name: "carotte" },
{ type: "fruit", name: "banane" },
];
// Object.groupBy maintenant typé
const grouped = Object.groupBy(items, item => item.type);
// { fruit: [...], légume: [...] }
// Promise.withResolvers aussi
const { promise, resolve, reject } = Promise.withResolvers<string>();
Validation des imports JSON
Sous --module nodenext, les imports JSON nécessitent maintenant un attribut type: "json" explicite :
// Erreur sans l'attribut
import data from "./config.json";
// Correct
import data from "./config.json" with { type: "json" };
Aligne TypeScript avec le comportement de Node.js pour les imports JSON.
Builds composites plus rapides
Améliorations de performance pour les gros projets composites : TypeScript vérifie uniquement les fichiers racine au lieu de parcourir tout l’arbre de dépendances.
Autres améliorations
- Recherche améliorée des fichiers de configuration dans les workspaces
- Meilleure détection de la propriété du projet dans les setups multi-projets
- Map.groupBy() typé avec ES2024
É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.
À retenir
TypeScript 5.7 continue la tendance : attraper plus de bugs au compile-time. La détection des variables non initialisées va probablement révéler quelques surprises dans vos projets. La réécriture des extensions simplifie la migration vers ESM.