Búsqueda de sitios web

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;
}