馃敟 OBJECT TYPES, EXTENDER M脷LTIPLES TIPOS

Las interfaces tambi茅n permiten extender desde m煤ltiples interfaces. Supongamos que tenemos una computadora MacbookPro, la cual esta conformada por los valores de las interfaces Computador, SistemaOperativo y Portatil. Por ende podemos combinar todas estas interfaces para asignar valores a nuestro nuevo objeto.

interface Computador {
    memoria: string;
    procesador: string;
    hdd: string;
}

interface SistemaOperativo {
    so: string;
    version: string;
}

interface Portatil extends Computador, SistemaOperativo {
    bateria: string;
    monitor: string;
    teclado: string;
}

interface Servidor extends Computador, SistemaOperativo {
    conexion: string;
}

const macbookPro: Portatil = {
    memoria: "16G",
    procesador: "intel",
    hdd: "1TB",
    so: "osx",
    version: "catalina",
    bateria: "litio",
    monitor: "17 pulgadas",
    teclado: "espa帽ol",
};

const ubuntuServer: Servidor = {
    memoria: "64G",
    procesador: "intel",
    hdd: "4TB",
    so: "ubuntu",
    version: "trusty",
    conexion: "ethernet",
};

Teniendo como base las interfaces Computador y SistemaOperativo, podemos crear otras 2 interfaces Portatil y Servidor. En el caso de Portatil requerimos de un monitor y una bater铆a, un monitor y un gabinete de cierta dimensi贸n. Los servidores por su lado solo se administran desde la distancia, por lo que solo requerimos conectarlo para utilizarlo, por ello especificamos solo la configuraci贸n de la conexi贸n.