TypeScript 5.5 est sorti : ce qui a changé dans la nouvelle version

Formateur Python en ligne pour débutants

Apprenez Python facilement sans surcharge théorique. Résolvez des tâches pratiques avec vérification automatique et écrivez du code directement dans le navigateur.

Start Course

TypeScript 5.5 est sorti : ce qui a changé dans la nouvelle version



Le 14 juin 2024, l'équipe Microsoft a officiellement présenté la version TypeScript 5.5 — l'une des versions les plus significatives du populaire typage statique pour JavaScript. Dans cette nouvelle mise à jour, les développeurs ont reçu non seulement des corrections de bugs, mais aussi une série de fonctionnalités puissantes simplifiant l'écriture de code et améliorant les performances. Examinons les principales nouveautés.



Déclarations isolées (Isolated Declarations)

La nouveauté la plus attendue de TypeScript 5.5 est le support expérimental du mode Isolated Declarations. Désormais, le compilateur peut générer des fichiers de déclaration (.d.ts) pour chaque module indépendamment, sans avoir à charger l'ensemble du projet. Cela est particulièrement utile pour les grands monorepos et les builds où l'accélération du compilateur devient cruciale. Le mode peut être activé via le flag --isolatedDeclarations dans tsconfig.json.



  • Accélération du build : la compilation isolée des types permet de paralléliser le processus et de réduire le temps d'attente.
  • Commodité pour les bibliothèques : les auteurs de packages peuvent désormais générer plus rapidement des types à jour.
  • Rétrocompatibilité : le nouveau mode ne casse pas le code existant, il peut être introduit progressivement.


Contrôle des fuites mémoire dans les closures

TypeScript 5.5 a appris à avertir des fuites mémoire potentielles liées aux closures. Le compilateur analyse désormais si une closure ne conserve pas des références inutiles à de gros objets ou des éléments DOM. Par exemple :

function setupHandler() {    const largeData = new Array(1000000).fill('x');    document.getElementById('btn')?.addEventListener('click', () => {        console.log('clicked');        // Auparavant, le compilateur ne prévenait pas que largeData reste en mémoire    });}

Désormais, TypeScript émettra un avertissement s'il détecte qu'une closure capture des variables qui ne sont pas utilisées à l'intérieur, mais qui restent en mémoire en raison de leur liaison au gestionnaire. Cela aide à écrire un code plus efficace sans profilage manuel.



Inférence de types améliorée pour les tableaux et la déstructuration

Dans cette nouvelle version, le mécanisme d'inférence de types a été considérablement amélioré. TypeScript 5.5 détermine désormais plus précisément les types dans la déstructuration de tableaux et de tuples. Par exemple, lors de l'utilisation d'une API retournant des tuples, le compilateur reconnaît désormais correctement chaque élément :

function fetchUser() {    return [1, 'Alice'] as const;}const [id, name] = fetchUser(); // id: number, name: string (auparavant c'était un union)

Cela évite les annotations manuelles superflues et rend le code plus propre.



Détection automatique des types à partir de JSDoc

Lors de l'utilisation de allowJs et de la vérification de fichiers JavaScript, TypeScript 5.5 a appris à déduire automatiquement les types à partir des commentaires JSDoc, même dans des cas complexes — par exemple, pour des callbacks avec plusieurs paramètres. Cela est particulièrement pertinent pour les projets qui migrent progressivement de JS vers TS.



Autres améliorations et corrections

  • Optimisation de la vitesse : jusqu'à 15% d'accélération de la compilation pour les grands projets grâce à la mise en cache des résultats intermédiaires.
  • Nouveaux flags : --noUncheckedSideEffectImports interdit les imports sans effets de bord s'ils ne sont pas utilisés explicitement.
  • Corrections de bugs : plus de 80 erreurs corrigées, liées

Recommended Libraries