Saltearse al contenido

Extensión de tipos

Es posible extender una interface (copiar miembros de otro tipo):

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

También es posible extender varios tipos:

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

La palabra clave extends solo funciona con interfaces y clases; para los tipos debe utilizarse una intersección:

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

Es posible extender un tipo mediante una interfaz, pero no a la inversa:

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