Pular para o conteúdo

Estendendo Tipos

É possível estender uma interface (copiar membros de outro tipo):

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

Também é possível estender de múltiplos tipos:

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

A palavra-chave extends funciona apenas em interfaces e classes; para tipos, use uma interseção:

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

É possível estender um tipo usando uma inferência, mas não o contrário:

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