Se rendre au contenu

TypeScript 5.0 est sorti

16 mars 2023 par
TypeScript 5.0 est sorti
Makersquad

Date de sortie : 16 mars 2023

Documentation officielle : Announcing TypeScript 5.0

TypeScript 5.0 est une release massive. Les décorateurs ECMAScript standard remplacent l’ancienne API expérimentale, const type parameters règlent des problèmes d’inférence frustrants, et le compilateur est 89% plus rapide. Oui, 89%.

Les nouveautés principales

Décorateurs ECMAScript

Implémentation du standard ECMAScript pour les décorateurs :

function logged<T extends (...args: any[]) => any>(
  target: T,
  context: ClassMethodDecoratorContext
) {
  return function (...args: Parameters<T>): ReturnType<T> {
    console.log(`Calling ${String(context.name)}`);
    return target.apply(this, args);
  };
}

class Calculator {
  @logged
  add(a: number, b: number) {
    return a + b;
  }
}

Remplace les décorateurs expérimentaux (experimentalDecorators).


const type parameters

Inférence const par défaut pour les génériques :

// Sans const : T est string[]
function getNames<T extends string[]>(names: T) { return names; }
getNames(["Alice", "Bob"]);  // string[]

// Avec const : T est readonly ["Alice", "Bob"]
function getNames<const T extends string[]>(names: T) { return names; }
getNames(["Alice", "Bob"]);  // readonly ["Alice", "Bob"]

extends multiple dans tsconfig

Hériter de plusieurs configurations :

{
  "extends": ["./base.json", "./strict.json"],
  "compilerOptions": { ... }
}


--moduleResolution bundler

Nouvelle stratégie de résolution pour les bundlers modernes :

{
  "compilerOptions": {
    "moduleResolution": "bundler",
    "allowImportingTsExtensions": true
  }
}


JSDoc @satisfies et @overload

Pour les projets JavaScript avec vérification de types :

/**
 * @satisfies {Record<string, number>}
 */
const counts = { apples: 5, oranges: 3 };

/**
 * @overload
 * @param {string} x
 * @returns {number}
 */
/**
 * @overload
 * @param {number} x
 * @returns {string}
 */
function process(x) { ... }


Performance : 89% plus rapide — pas une faute de frappe

  • Démarrage du compilateur 89% plus rapide que 4.9
  • Package npm 41% plus petit (63.8 MB → 37.4 MB)
  • Migration interne vers les modules ES

L’équipe TypeScript a migré le compilateur vers les modules ES et les résultats sont spectaculaires.


Autres améliorations

  • Tous les enums sont maintenant des “union enums”
  • --verbatimModuleSyntax pour un meilleur contrôle des imports
  • Support de export type *

É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.0 est une mise à jour incontournable. Les décorateurs standard ouvrent la voie à un écosystème plus unifié, et les gains de performance sont impressionnants. La migration depuis 4.x devrait être fluide pour la plupart des projets.

TypeScript 4.9 est sorti