Bỏ qua nội dung

Mở rộng kiểu

Có thể mở rộng một interface (sao chép các thành viên từ một kiểu khác):

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

Cũng có thể mở rộng từ nhiều kiểu:

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

Từ khóa extends chỉ hoạt động trên interface và class; với type, hãy dùng intersection:

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

Có thể mở rộng một type bằng interface nhưng không thể làm ngược lại:

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