Avatar ·

Verificação de tipo de classe em TypeScript: como determinar se um objeto é uma instância de uma classe específica?

Olá a todos! Recentemente comecei a estudar TypeScript e me deparei com um problema ao verificar tipos em tempo de execução. Tenho uma hierarquia de classes: ```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!"); } } ``` Estou escrevendo uma função que recebe um array `Animal[]` e quer executar ações diferentes para cães e gatos. Em JavaScript, eu usaria `instanceof`, mas o TypeScript gera um erro quando tento fazer assim: ```typescript function processAnimals(animals: Animal[]) { for (const animal of animals) { if (animal instanceof Dog) { // Erro: 'Dog' refere-se a um valor, mas está sendo usado como um tipo aqui animal.bark(); } else if (animal instanceof Cat) { animal.meow(); } } } ``` TypeScript diz: `'Dog' refere-se a um valor, mas está sendo usado