Peut-on étendre (extends) les types en TypeScript comme les interfaces ?
Bonjour à tous ! Je viens de commencer à apprendre TypeScript et je suis confronté à une incompréhension. Je sais que les interfaces peuvent être étendues avec `extends`. Par exemple :
```typescript
interface User {
name: string;
}
interface AdminUser extends User {
role: string;
}
```
Cela fonctionne parfaitement. Mais quand j'essaie de faire la même chose avec les types (type alias), je n'y arrive pas :
```typescript
type User = {
name: string;
};
type AdminUser extends User { // ❌ Erreur : 'extends' ne fonctionne pas avec les types
role: string;
}
```
J'ai essayé différentes options, mais TypeScript râle. Sur Internet, on dit que les types peuvent être étendus avec des intersections (&), mais je ne comprends pas bien comment faire correctement et quelle est la différence entre les interfaces et les types dans le contexte de l'extension.
Dites-moi, s'il vous plaît, comment étendre correctement les types ? Est-ce possible en général ? Et si oui, quand est-il préférable d'utiliser `extends` pour les interfaces et quand utiliser les intersections pour les types ?
Merci d'avance pour votre aide !
No answers yet.
Connectez-vous pour laisser une réponse
Blogs