Comment spécifier une chaîne concrète dans une interface TypeScript (type littéral)
Bonjour à tous ! Je viens de commencer à apprendre TypeScript et j'ai rencontré un problème. Je dois créer une interface pour un objet qui a un champ `status`. Ce champ doit accepter des valeurs strictement définies, par exemple : `"active"`, `"inactive"` ou `"pending"`. Si on essaie d'assigner n'importe quelle autre chaîne, une erreur de compilation doit survenir.
J'ai essayé de faire ceci :
```typescript
interface UserStatus {
status: string;
}
```
Mais cela ne convient pas, car `string` autorise n'importe quelle chaîne. Je veux que TS vérifie que la valeur du champ `status` est l'une des trois chaînes possibles.
J'ai essayé d'utiliser `enum`, mais on m'a dit qu'on pouvait faire plus simplement — avec des types littéraux. Comment décrire correctement une telle interface ? Et peut-on faire en sorte que l'IDE suggère les options possibles lors de la saisie ?
Exemple de ce que je veux :
```typescript
const user1: User = { status: "active" }; // Ok
const user2: User = { status: "deleted" }; // Erreur !
```
Indiquez-moi, s'il vous plaît, comment réaliser cela.
No answers yet.
Connectez-vous pour laisser une réponse