Combinación y extensión
La combinación y la extensión son dos conceptos distintos relacionados con los tipos y las interfaces.
La combinación permite reunir varias declaraciones con el mismo nombre en una única definición; por ejemplo, al definir varias veces una interfaz con el mismo nombre:
interface X { a: string;}
interface X { b: number;}
const person: X = { a: 'a', b: 7,};La extensión permite extender o heredar tipos o interfaces existentes para crear otros nuevos. Es un mecanismo para añadir propiedades o métodos sin modificar la definición original. Ejemplo:
interface Animal { name: string; eat(): void;}
interface Bird extends Animal { sing(): void;}
const dog: Bird = { name: 'Bird 1', eat() { console.log('Eating'); }, sing() { console.log('Singing'); },};