{Bitacide}
Retour aux articles
Développement

TypeScript 5.x : les features qui changent la donne

S
Sophie Durand
2 min lecture

TypeScript, toujours plus malin

TypeScript 5.x n'a pas fait de révolution bruyante, mais ses évolutions récentes résolvent des vrais problèmes du quotidien. Voici les features qui méritent votre attention.

Les décorateurs standards

Fini les décorateurs "expérimentaux" avec experimentalDecorators. TypeScript supporte désormais les décorateurs TC39 Stage 3, compatibles avec le standard ECMAScript :

function logged(target: any, context: ClassMethodDecoratorContext) {
  return function (...args: any[]) {
    console.log(`Appel de ${String(context.name)}`);
    return target.apply(this, args);
  };
}

class Service {
  @logged
  fetchData() {
    // ...
  }
}

satisfies — le typage qui manquait

L'opérateur satisfies vérifie qu'une valeur correspond à un type sans élargir son type inféré. C'est subtil mais puissant :

type Config = Record<string, string | number>;

const config = {
  port: 3000,
  host: "localhost",
  debug: "true",
} satisfies Config;

// config.port est inféré comme number (pas string | number)
config.port.toFixed(2); // ✅ Ça marche !

Les types const pour les génériques

Vous pouvez maintenant demander à TypeScript d'inférer le type le plus étroit possible pour les paramètres de type :

function routes<const T extends readonly string[]>(paths: T): T {
  return paths;
}

const r = routes(["/home", "/about", "/blog"]);
// Type: readonly ["/home", "/about", "/blog"] et non string[]

Performances améliorées

L'équipe TypeScript a mis un gros coup sur les performances :

  • Migration interne vers des modules natifs (plus rapide)
  • Réduction de la consommation mémoire
  • Compilation incrémentale plus intelligente

Sur les gros projets, la différence se sent vraiment.

Le mot de la fin

TypeScript continue de prouver qu'un système de types peut être à la fois puissant et pragmatique. Chaque version apporte des outils qui rendent le code plus sûr sans sacrifier la productivité.

Si vous n'avez pas encore fait le saut depuis JavaScript vanilla... il est peut-être temps d'y réfléchir sérieusement.

#typescript#javascript#types