TypeScript : Quelle est la différence entre interface et type ? Quand utiliser quoi ?
Bonjour à tous ! J'ai commencé à étudier TypeScript et je suis confus quant à la différence entre `interface` et `type`. Apparemment, les deux permettent de décrire la structure des objets, mais je ne comprends pas quand utiliser quel outil.
Regardez mon code. J'essaie de décrire un utilisateur et son adresse :
```typescript
// Variante avec interface
interface IUser {
name: string;
age: number;
address: IAddress;
}
interface IAddress {
city: string;
street: string;
}
// Variante avec type
type TUser = {
name: string;
age: number;
address: TAddress;
}
type TAddress = {
city: string;
street: string;
}
```
Les deux variantes fonctionnent, mais j'ai entendu dire qu'il y a des différences fondamentales. Par exemple, j'ai vu que `type` peut faire quelque chose avec les unions, alors que `interface` non. Et dans certains projets, on utilise `interface` pour tout, tandis que dans d'autres, on utilise `type`.
S'il vous plaît, dites-moi quelle est la vraie différence ? Quelles sont les bonnes pratiques ? Y a-t-il des situations où on ne peut utiliser que l'un ou l'autre ?