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,
No answers yet.
Connectez-vous pour laisser une réponse