Salta ai contenuti

Unione ed estensione

Merging ed estensione si riferiscono a due concetti diversi relativi all’utilizzo di tipi e interfacce.

Merging consente di combinare più dichiarazioni con lo stesso nome in un’unica definizione, ad esempio quando si definisce un’interfaccia con lo stesso nome più volte:

interface X {
a: string;
}
interface X {
b: number;
}
const person: X = {
a: 'a',
b: 7,
};

L’estensione si riferisce alla possibilità di estendere o ereditare da tipi o interfacce esistenti per crearne di nuovi. È un meccanismo per aggiungere proprietà o metodi aggiuntivi a un tipo esistente senza modificarne la definizione originale. Esempio:

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