Avatar ·

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