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