Avatar ·

Vérification de type de classe en TypeScript : comment déterminer si un objet est une instance d'une classe spécifique ?

Bonjour à tous ! J'ai récemment commencé à apprendre TypeScript et j'ai rencontré un problème lors de la vérification des types à l'exécution. J'ai une hiérarchie de classes : ```typescript class Animal { name: string; constructor(name: string) { this.name = name; } } class Dog extends Animal { bark() { console.log("Woof!"); } } class Cat extends Animal { meow() { console.log("Meow!"); } } ``` J'écris une fonction qui prend un tableau `Animal[]` et veut effectuer différentes actions pour les chiens et les chats. En JavaScript, j'utiliserais `instanceof`, mais TypeScript génère une erreur lorsque j'essaie de faire ceci : ```typescript function processAnimals(animals: Animal[]) { for (const animal of animals) { if (animal instanceof Dog) { // Erreur : 'Dog' fait référence à une valeur, mais est utilisé comme un type ici animal.bark(); } else if (animal instanceof Cat) { animal.meow(); } } } ``` TypeScript dit : `'Dog' fait référence à une valeur, mais est utilisé comme un type ici`