Avatar ·

Cómo verificar el tipo de clase en TypeScript: instanceof, type guards y protección de tipos

¡Hola a todos! Soy nuevo en TypeScript y me encontré con el problema de verificar tipos de clases. Tengo una jerarquía de clases: una clase base `Animal` y dos clases hijas — `Dog` y `Cat`. Cada una tiene sus propios métodos únicos: `bark()` en Dog y `meow()` en Cat. Recibo un array de objetos de tipo `Animal[]` de una fuente externa (por ejemplo, una API), y necesito determinar a qué clase pertenece cada objeto para llamar al método correspondiente. Aquí hay un ejemplo de código: ```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 => { // ¿Cómo verificar si animal es Dog o Cat? // if (animal instanceof Dog) { ... } — ¿esto funciona? // ¿O necesito usar t