const Type Parameters

TypeScript 🟡 Mid

Définition

Modificateur const sur un paramètre générique, introduit en TypeScript 5.0 (16 mars 2023) : les arguments littéraux sont inférés comme s'ils portaient as const (tuples readonly, littéraux de chaîne), sans que l'appelant ait à l'écrire. La fonction obtient ainsi les types les plus précis possibles.

Analogie

Un photographe qui capture la scène en haute définition d'office, sans que le client demande le mode RAW.

Exemple de code

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

const a = nommer(['alice', 'bob']);
// a : readonly ['alice', 'bob']  (sans const : string[])

type Premier = (typeof a)[0]; // 'alice'
// Avant TS 5.0 : nommer(['alice', 'bob'] as const) côté appelant

Cas d'usage

Bibliothèques de routage, de validation ou de configuration typée qui veulent les littéraux exacts de l'appelant.

Anti-pattern

Mettre const partout : sur des données destinées à être mutées, on impose des readonly indésirables.
#core#ts5#generics#interview

En entretien

  1. Explique-moi les const type parameters.

    C'est un modificateur const sur un paramètre générique, introduit en TypeScript 5.0, qui infère les arguments littéraux comme s'ils portaient as const, sans que l'appelant ait à l'écrire. Ça donne les types les plus précis possibles, utile pour des bibliothèques de routage ou de configuration typée.

  2. Quand éviter de mettre const partout sur les génériques ?

    Quand les données passées sont destinées à être mutées, car const impose des types readonly indésirables. Il faut réserver ça aux cas où on veut vraiment figer les littéraux de l'appelant.

Fiche mise à jour le 2026-09-27

← → au clavier pour passer d'une fiche à l'autre