🥇 Tipos, interfaces vs types (interfaces vs tipos)

El uso de type e interface es muy similar, y en la mayoría de los casos es posible elegir cualquiera de ellos de forma indistinta. Casi todas las características de interface están disponibles en type, la clave para distinguir entre cuando usar una y otra es que una ves que se define un type no se le pueden agregar mas propiedades, mientras que interface es siempre extendible.

Supongamos que tenemos una interface y un type.

interface Transporte {
    nombre: string;
}

type Figura = {
    nombre: string;
}

🍿 ¿Cómo extender una interface?

interface Auto extends Transporte {
    ruedas: number;
}

🍿 ¿Cómo extender un type?

type Cuadrado = Figura & {
    lados: 4;
}

🍿 ¿Cómo agregar mas propiedades a una interface previamente definida?

interface Transporte {
    peso: number;
}

🍿 ¿Cómo agregar propiedades a un type previamente definido?

Cuando se utiliza type no es posible agregar mas propiedades. Esta es una de las diferencias que existen entre interface vs type.