const assertion (as const)
TypeScript 🟡 MidDéfinition
Assertion qui empêche le widening et rend toutes les propriétés readonly et les valeurs littérâles. Transforme un objet/tableau en version profondément immutable.
Analogie
Comme graver dans le marbre — une fois écrit, chaque détail est fige exactement tel quel.
Exemple de code
const config = {
api: "https://api.com",
retries: 3
} as const;
// type: { readonly api: "https://api.com"; readonly retries: 3 }
Cas d'usage
Créer des constantes avec des types littéraux exacts pour les discriminated unions et les lookups.
Anti-pattern
Termes liés
En entretien
Explique-moi ce que fait `as const` sur un objet ou un tableau.
Ça empêche le widening et rend toutes les propriétés readonly avec des types littéraux exacts, transformant l'objet ou le tableau en version profondément immutable.
Quel est le piège classique quand on veut utiliser un tableau comme union de littéraux ?
Si on oublie `as const`, `["a", "b"]` est inféré en `string[]` au lieu de `readonly ["a", "b"]`, donc on perd les types littéraux attendus.
Dans quel cas utiliserais-tu concrètement `as const` ?
Pour créer des constantes avec des types littéraux exacts, utiles pour les discriminated unions et les lookups typés.
Fiche mise à jour le 2026-09-27