La interfaz de TypeScript se extiende de una u otra interfaz
Supongamos que tengo las siguientes dos interfaces
interface Bird {
type: 'bird';
flyingSpeed: number;
}
interface Horse {
type: 'horse';
runningSpeed: number;
}
Ahora quiero crear otra interfaz que extenderá la interfaz Bird o Horse. Sé que es posible usando type. Solo tengo curiosidad por saber si es posible usar una interfaz o no, como lo siguiente
interface Animal extends Bird | Horse {
name: string
}
Respuesta #1
En este caso, tomaría el camino opuesto. Primero crearía una interfaz abstracta de Animal y luego crearía subespecies individuales a partir de ella. El tipo AnimaSpecies no es obligatorio, puedes omitirlo y definir el tipo solo en Bird y Horse.
type AnimaSpecies = 'bird' | 'horse';
interface Animal {
name: string,
type: AnimaSpecies;
}
interface Bird extends Animal {
type: 'bird';
flyingSpeed: number;
}
interface Horse extends Animal {
type: 'horse';
runningSpeed: number;
}
