Se rendre au contenu

TypeScript 5.7 est sorti

22 novembre 2024 par
TypeScript 5.7 est sorti
Makersquad

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.

TypeScript 5.6 est sorti