Sự khác biệt giữa type và interface trong TypeScript là gì?
Sự khác biệt giữa type và interface trong TypeScript là gì?
Trong TypeScript, cả type
và interface
đều được sử dụng để định nghĩa hình dạng của dữ liệu, nhưng chúng có một số sự khác biệt quan trọng:
Khả năng mở rộng (Extensibility):
interface
có thể mở rộng từ một hoặc nhiều interface
khác bằng từ khóa extends
, cho phép tái sử dụng và kết hợp các định nghĩa[2][4].type
không hỗ trợ việc mở rộng từ một type
khác nhưng có thể sử dụng Intersection Types (&
) để kết hợp nhiều type
thành một[4][5].Tính Mergeable:
interface
có tính chất mergeable, nghĩa là nếu bạn định nghĩa hai interface
trùng tên, TypeScript sẽ tự động kết hợp các định nghĩa lại với nhau[4].type
không hỗ trợ tính chất mergeable. Nếu bạn định nghĩa hai type
trùng tên, TypeScript sẽ báo lỗi[4].Sử dụng với Primitive Types và Union Types:
type
có thể sử dụng để đặt tên cho bất kỳ kiểu dữ liệu nào, bao gồm các kiểu dữ liệu nguyên thủy, kiểu dữ liệu hợp nhất (union types), và kiểu dữ liệu giao nhau (intersection types)[1][5][7].interface
không thể sử dụng trực tiếp với kiểu dữ liệu nguyên thủy hoặc kiểu dữ liệu hợp nhất như type
[1][5].Định nghĩa Function Types:
type
và interface
đều có thể...middle
Gợi ý câu hỏi phỏng vấn
Chưa có bình luận nào