Avatar ·

Quelle est la différence entre interface et type en TypeScript et quand utiliser quoi ?

Bonjour à tous ! Je viens de commencer à apprendre TypeScript et je suis tombé sur deux façons de décrire la structure des objets : `interface` et `type`. Au début, je pensais que c'était la même chose, mais j'ai ensuite remarqué qu'ils se comportent différemment dans certaines situations. Voici un exemple. Je peux écrire ceci avec `interface` : ```typescript interface User { name: string; age: number; } ``` Ou ceci avec `type` : ```typescript type User = { name: string; age: number; }; ``` Les deux options fonctionnent de la même manière quand je crée un objet : ```typescript const user: User = { name: 'Alex', age: 30 }; ``` Mais ensuite, j'ai essayé de fusionner deux types. Avec `interface`, je peux simplement écrire une deuxième interface avec le même nom, et elles se fusionnent : ```typescript interface User { email: string; } // Maintenant User a name, age et email ``` Avec `type`, j'ai obtenu une erreur : "Duplicate identifier 'User'". C'est là que j'ai appris à utiliser `&` (intersection) pour les types, mais c'est une syntaxe différente. J'ai aussi entendu dire que `type` peut faire