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