Avatar ·

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 }