Nhập vs Giao diện trong bản thảo

Tram Ho

Khi làm việc với Typescript,chúng ta rất hay bị “Bối rối” về việc sử dụng Type và interface.Trong bài viết này mình sẽ phân tích 1 vài điểm khác
nhau giữa Type và Interface.

Typescript nâng cao của javascript,tất nhiên rồi ngoài nhưng tính năng đã có của javascript thì typescript cung cấp cho chúng ta thêm rất nhiều
tính năng khác,điển hình là Static Type.

Về cơ bản typescript có 3 loại types chính đó là

  • Any type
  • Built in type
  • User defined type

Interface và Type thuộc loại thứ 3 – User defined type.

1.Khai báo

Type

Interface

2.Interface có thể merge còn Type thì không

Trong cùng 1 file chúng ta khai báo như sau

Mọi thì đều ổn,còn với Type thì sao

Ở đây chúng ta sẽ nhận được lỗi : “Duplicate identifier ‘Shape.”

3.Type có thể sử dụng được với “Computed Properties” còn interface thì không

Type

Interface

Chúng ta sẽ nhận được lỗi A computed property name in an interface must refer to an expression whose type is a literal type or a ‘unique symbol’ type.

4.Tuples Type

5.Type có Unions type còn interface thì không

Type

Ngoài việc tự định nghĩa ra các type ,thì Typescript cũng cấp cho chúng ta Utility Types rất hữu dụng khi làm việv với Legacy code.

Tổng Kết

Vậy khi nào sử dụng Type và khi nào sử dụng Interface,cái này thì cá nhân mình cũng chưa phân biệt được rõ ràng 😉).Theo kinh nghiệm
làm việc của mình,dùng Inferface khi :

-Bạn viết library – và cung cấp public Api cho nguười khác dùng

Dùng type khi :

Bạn muốn một điều gì đó rõ ràng hơn interface

Chia sẻ bài viết ngay

Nguồn bài viết : Viblo