Wie man den Klassentyp in TypeScript überprüft: instanceof, Type Guards und Typsicherung
Hallo zusammen! Ich bin neu in TypeScript und habe ein Problem mit der Überprüfung von Klassentypen. Ich habe eine Klassenhierarchie: eine Basisklasse `Animal` und zwei abgeleitete Klassen — `Dog` und `Cat`. Jede hat ihre eigenen einzigartigen Methoden: `bark()` bei Dog und `meow()` bei Cat.
Ich erhalte ein Array von Objekten vom Typ `Animal[]` aus einer externen Quelle (z. B. API) und muss bestimmen, zu welcher Klasse jedes Objekt gehört, um die entsprechende Methode aufzurufen.
Hier ist ein Beispielcode:
```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 => {
// Wie überprüfe ich, ob animal ein Dog oder Cat ist?
// if (animal instanceof Dog) { ... } — funktioniert das?
// Oder muss ich t
}