Пропустить до содержимого

Слияние и расширение

Слияние и расширение — это два разных понятия, связанных с работой с типами и интерфейсами.

Слияние позволяет объединить несколько объявлений с одним именем в единое определение, например когда интерфейс с одним именем определяется несколько раз:

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');
},
};