Trong bài viết này, chúng ta sẽ tìm hiểu về khái niệm "Interface Inheritance" trong TypeScript. Đây là một khái niệm quan trọng giúp chúng ta tạo ra các cấu trúc dữ liệu phức tạp hơn và linh hoạt hơn.
"Interface Inheritance" là khái niệm cho phép một interface kế thừa từ một hoặc nhiều interface khác. Điều này giúp chúng ta tạo ra các cấu trúc dữ liệu phức tạp hơn mà không cần phải lặp lại code.
Ví dụ về Interface Inheritance:
interface Person {
name: string;
age: number;
}
interface Employee extends Person {
salary: number;
}
Trong ví dụ trên, chúng ta đã tạo ra một interface mới tên là Employee
kế thừa từ interface Person
. Interface Employee
sẽ có tất cả các thuộc tính của Person
và thêm vào đó là thuộc tính salary
.
Trong TypeScript, một interface có thể kế thừa từ một interface khác. Điều này giúp chúng ta tạo ra các interface phức tạp hơn từ các interface đơn giản.
Đây là cú pháp cơ bản để kế thừa từ một interface:
interface BaseInterface {
// các thuộc tính và phương thức của BaseInterface
}
interface DerivedInterface extends BaseInterface {
// các thuộc tính và phương thức của DerivedInterface
}
Trong ví dụ trên, DerivedInterface
kế thừa từ BaseInterface
. Điều này có nghĩa là DerivedInterface
sẽ có tất cả các thuộc tính và phương thức của BaseInterface
, cùng với các thuộc tính và phương thức riêng của nó.
TypeScript cũng cho phép một interface kế thừa từ nhiều interface khác. Điều này giúp chúng ta tạo ra các interface phức tạp hơn từ nhiều interface đơn giản.
Đây là cú pháp cơ bản để kế thừa từ nhiều interface:
interface BaseInterface1 {
// các thuộc tính và phương thức của BaseInterface1
}
interface BaseInterface2 {
// các thuộc tính và phương thức của BaseInterface2
}
interface DerivedInterface extends BaseInterface1, BaseInterface2 {
// các thuộc tính và phương thức của DerivedInterface
}
Trong ví dụ trên, DerivedInterface
kế thừa từ cả BaseInterface1
và BaseInterface2
. Điều này có nghĩa là DerivedInterface
sẽ có tất cả các thuộc tính và phương thức của cả BaseInterface1
và BaseInterface2
, cùng với các thuộc tính và phương thức riêng của nó.