Слияние и расширение
Слияние и расширение — это два разных понятия, связанных с работой с типами и интерфейсами.
Слияние позволяет объединить несколько объявлений с одним именем в единое определение, например когда интерфейс с одним именем определяется несколько раз:
interface X { a: string;}
interface X { b: number;}
const person: X = { a: 'a', b: 7,};Расширение — это возможность расширять существующие типы или интерфейсы либо наследовать от них для создания новых. Этот механизм позволяет добавлять дополнительные свойства или методы к существующему типу без изменения его исходного определения. Пример:
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'); },};