Avatar ·

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 ?