Trong TypeScript, bạn có thể mở rộng các kiểu trong một interface từ một interface khác bằng cách sử dụng từ khóa extends. Điều này cho phép bạn tạo ra một interface mới mà bao gồm tất cả các thuộc tính của interface hiện có, cùng với các thuộc tính mới mà bạn muốn thêm vào.

Cách mở rộng một interface

Dưới đây là cú pháp và ví dụ để giúp bạn hiểu cách mở rộng một interface trong TypeScript.

Cú pháp

interface NewInterface extends ExistingInterface {
    // Các thuộc tính mới ở đây
}

Ví dụ mở rộng interface

Giả sử bạn có một interface Person và bạn muốn tạo một interface mới Employee mở rộng từ Person.

// Định nghĩa interface Person
interface Person {
    name: string;
    age: number;
}

// Định nghĩa interface Employee mở rộng từ Person
interface Employee extends Person {
    employeeId: number;
    department: string;
}

// Sử dụng interface Employee
const employee: Employee = {
    name: "Alice",
    age: 30,
    employeeId: 1234,
    department: "HR"
};

console.log(employee);

Trong ví dụ trên, interface Employee kế thừa tất cả các thuộc tính từ interface Person, vì vậy bạn không cần phải định nghĩa lại nameage. Bạn chỉ cần thêm các thuộc tính mới employeeIddepartment.

Kết hợp nhiều interface

Bạn cũng có thể mở rộng từ nhiều interface cùng một lúc bằng cách sử dụng dấu phẩy. Điều này cho phép bạn kết hợp nhiều kiểu dữ liệu khác nhau.

// Định nghĩa interface Address
interface Address {
    street: string;
    city: string;
}

// Định nghĩa interface Contact mở rộng từ Person và Address
interface Contact extends Person, Address {
    email: string;
}

// Sử dụng interface Contact
const contact: Contact = {
    name: "Bob",
    age: 25,
    street: "123 Main St",
    city: "New York",
    email: "[email protected]"
};

console.log(contact);

Trong ví dụ này, interface Contact mở rộng từ cả PersonAddress, kết hợp các thuộc tính của cả hai interface.

Kết luận

Việc mở rộng các kiểu trong TypeScript thông qua các interface là một cách hiệu quả để tổ chức và quản lý mã của bạn. Bằng cách kế thừa các thuộc tính từ các interface khác, bạn có thể tái sử dụng mã và đảm bảo rằng các kiểu dữ liệu của bạn có cấu trúc rõ ràng và nhất quán. Sử dụng tính năng này giúp bạn dễ dàng quản lý các loại dữ liệu phức tạp trong ứng dụng TypeScript của mình.