Skip to content

Разширяване на типове

Възможно е да се разшири interface (да се копират елементи от друг тип):

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

Възможно е също така да се разшири от няколко типа:

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

Ключовата дума extends работи само с interfaces и класове; при types се използва сечение (intersection):

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

Възможно е type да бъде разширен чрез interface, но не и обратното:

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