Solución
solution.tsTypeScript
class Animal {
name: string;
constructor (name: string) {
this.name = name;
}
sound () {
return '...';
}
}
class Dog extends Animal {
sound() {
return 'Guau';
}
}
class Cat extends Animal {
sound() {
return 'Miau';
}
}
export function makeSound(type: 'dog' | 'cat', name: string): string {
const animales = { dog: Dog, cat: Cat };
let instance = new animales[type](name);
if (type === 'dog') {
instance = new Dog(name);
} else {
instance = new Cat(name);
}
// Crea la instancia correspondiente y retorna la descripción del sonido
return `${instance.name} dice ${instance.sound()}`;
}0respuestas