Comment vérifier le type d'une classe en TypeScript : instanceof, type guards et protection de type
Bonjour à tous ! Je suis novice en TypeScript et j'ai rencontré un problème de vérification des types de classes. J'ai une hiérarchie de classes : une classe de base `Animal` et deux classes filles — `Dog` et `Cat`. Chacune a ses propres méthodes uniques : `bark()` pour Dog et `meow()` pour Cat.
Je reçois un tableau d'objets de type `Animal[]` depuis une source externe (par exemple, une API), et j'ai besoin de déterminer à quelle classe appartient chaque objet afin d'appeler la méthode correspondante.
Voici un exemple de code :
```typescript
class Animal {
name: string;
constructor(name: string) {
this.name = name;
}
}
class Dog extends Animal {
bark() {
console.log(`${this.name} says: Woof!`);
}
}
class Cat extends Animal {
meow() {
console.log(`${this.name} says: Meow!`);
}
}
const animals: Animal[] = [new Dog('Rex'), new Cat('Molly')];
animals.forEach(animal => {
// Comment vérifier que animal est un Dog ou un Cat ?
// if (animal instanceof Dog) { ... } — est-ce que ça marche ?
// Ou faut-il utiliser t