extends et implements en TypeScript : quelle est la différence ?
Bonjour à tous ! Je viens de commencer à apprendre TypeScript après JavaScript et je me suis embrouillé avec deux mots-clés — `extends` et `implements`. Apparemment, les deux sont utilisés pour travailler avec des classes et des interfaces, mais je ne comprends pas quand utiliser quoi.
J'ai une interface simple `Animal` qui décrit les propriétés et méthodes de base :
```typescript
interface Animal {
name: string;
makeSound(): void;
}
```
Et je veux créer une classe `Dog`. Dans les exemples, j'ai vu qu'on utilise à la fois `extends` et `implements` :
```typescript
// Option 1 : implements
class Dog implements Animal {
name: string;
constructor(name: string) {
this.name = name;
}
makeSound() {
console.log("Woof!");
}
}
// Option 2 : extends (s'il y avait une classe de base)
class AnimalBase {
name: string;
constructor(name: string) {
this.name = name;
}
}
class Dog extends AnimalBase {
makeSound() {
console.log("Woof!");
}
}
```
Mais je ne comprends pas la différence fondamentale. Quand utiliser