Avatar ·

Verificación de tipo de clase en TypeScript: ¿cómo determinar si un objeto es una instancia de una clase específica?

¡Hola a todos! Recientemente comencé a aprender TypeScript y me encontré con un problema al verificar tipos en tiempo de ejecución. Tengo una jerarquía de clases: ```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!"); } } ``` Estoy escribiendo una función que toma un array `Animal[]` y quiere realizar diferentes acciones para perros y gatos. En JavaScript usaría `instanceof`, pero TypeScript arroja un error cuando intento hacerlo así: ```typescript function processAnimals(animals: Animal[]) { for (const animal of animals) { if (animal instanceof Dog) { // Error: 'Dog' refers to a value, but is being used as a type here animal.bark(); } else if (animal instanceof Cat) { animal.meow(); } } } ``` TypeScript dice: `'Dog' refers to a value, but is being used