Salta ai contenuti

Estensione dei tipi

È possibile estendere un’interfaccia (copiare membri da un altro tipo):

interface X {
a: string;
}
interface Y extends X {
b: string;
}

È anche possibile estendere da più tipi:

interface A {
a: string;
}
interface B {
b: string;
}
interface Y extends A, B {
y: string;
}

La parola chiave extends funziona solo su interfacce e classi; per i tipi utilizzare un’intersezione:

type A = {
a: number;
};
type B = {
b: number;
};
type C = A & B;

È possibile estendere un tipo utilizzando un’inferenza, ma non viceversa:

type A = {
a: string;
};
interface B extends A {
b: string;
}