Avatar ·

Que signifie "as const" en TypeScript et à quoi cela sert-il ?

Bonjour à tous ! J'ai commencé à étudier TypeScript et je suis tombé sur la construction `as const`. J'ai compris qu'elle est liée à l'affirmation de type, mais je n'arrive pas à comprendre complètement. Voici un exemple qui me trouble : ```typescript const colors = ['red', 'green', 'blue'] as const; // typeof colors -> readonly ["red", "green", "blue"] const myColor = 'red' as const; // typeof myColor -> "red" (type littéral, pas string) const config = { api: 'https://api.example.com', port: 3000 } as const; // typeof config -> { readonly api: "https://api.example.com"; readonly port: 3000 } ``` Je vois que les types changent, mais je ne comprends pas : 1. Pourquoi `const colors = ['red', 'green', 'blue']` donne le type `string[]`, alors qu'avec `as const` on obtient un tuple avec des littéraux spécifiques ? 2. Pourquoi faut-il spécifier `as const` si la variable est déjà déclarée avec `const` ? Est-ce que `const` ne rend pas la valeur immuable ? 3. Dans quels scénarios réels cela peut-il être utile ? J'ai vu que c'est utilisé dans les actions Redux,