Avatar ·

Klassentyp-Prüfung in TypeScript: Wie bestimmt man, ob ein Objekt eine Instanz einer bestimmten Klasse ist?

Hallo zusammen! Ich habe kürzlich angefangen, TypeScript zu lernen, und bin auf ein Problem bei der Laufzeit-Typüberprüfung gestoßen. Ich habe eine Klassenhierarchie: ```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!"); } } ``` Ich schreibe eine Funktion, die ein Array `Animal[]` akzeptiert und verschiedene Aktionen für Hunde und Katzen ausführen möchte. In JavaScript würde ich `instanceof` verwenden, aber TypeScript gibt einen Fehler aus, wenn ich das versuche: ```typescript function processAnimals(animals: Animal[]) { for (const animal of animals) { if (animal instanceof Dog) { // Fehler: 'Dog' refers to a value, but is being used as a type here animal.bark(); } else if (animal instanceof Cat) { animal.meow(); } } } ``` TypeScript sagt: `'Dog' refers to a value, but is being used