TypeScript Utility

Giới thiệu

Trong bài viết này, tôi sẽ giới thiệu về Utility Types phổ biến trong Typescript, giải thích về tầm quan trọng của chúng, cùng với một số ví dụ và các trường hợp sử dụng có ích.

Utility Types là một built-in types nó cho phép chúng ta biến đổi các kiểu dữ liệu hiện có thành các kiểu dữ liệu mới với nhiều cách khác nhau, linh hoạt và dễ dàng bảo trì.

Nhìn vào sơ đồ trên, chúng ta có thể mường tượng ra một quá trình biến đổi từ một kiểu dữ liệu đang có thành một kiểu dữ liệu mới thông qua Utility Type.

Giả sử, trong trường hợp chúng ta có kiểu dữ liệu A và muốn tạo ra một kiểu dữ liệu mới là B có thể kế thừa, sửa đổi hoặc loại bỏ các thuộc tính từ kiểu dữ liệu A.

Chúng ta có thể làm được điều này bằng cách sử dụng Utility Type.

Ví dụ, type B = UtilityType<A, options> 

Trong đó:

  • UtilityType: đại diện cho loại kiểu dữ liệu được Typescript cung cấp.
  • Options: thao tác cần thực hiện như là kế thừa, loại bỏ hoặc sửa đổi.

Tìm hiểu về Ultility Types trong Typescript

Không để mất thời gian, chúng ta cùng điểm qua một số built-in types hay dùng trong hầu hết các dự án.

Partial

Đây là một Utility Types cho phép chúng ta tạo ra một kiểu dữ liệu với các thuộc tính optional (không bắt buộc) hoặc undefined từ một kiểu dữ liệu đã có sẵn.

Ví dụ: trường hợp chúng ta muốn tất cả thuộc tính của object PartialUser optional.

Bạn có thể chạy thử ví dụ trên thông qua đường dẫn do Typescript cung cấp: 

https://www.typescriptlang.org/play?#code/Q

Required

Ngược lại với Partial thì Required sẽ đảm bảo các thuộc tính đều bắt buộc.

Ví dụ:

Ở ví dụ này, nếu một object User không cung cấp đủ thông tin đúng theo kiểu dữ liệu RequiredUser thì Typescript sẽ báo lỗi ngay lập tức.

Omit

Giống như tên thì Utility Type này sẽ giúp chúng ta loại bỏ một số thuộc tính được chỉ định không cần thiết.

Ví dụ: trường hợp chúng ta cần tạo ra một type mới tên là UserWithoutAge, cần kế thừa lại type có sẵn là User và không có thuộc tính age.

Pick

Pick giúp chúng ta có thể chọn chỉ định các thuộc tính của một type nào đó.

Ví dụ: chúng ta cần tạo ra một type chỉ có thuộc tính name và kế thừa từ type User có sẵn.

Exclude 

Exclude cho phép chúng ta có thể loại bỏ một hay nhiều union type.

Ví dụ: 

Extract

Ngược lại với Exclude thì Extract cho phép chúng ta chọn một hay nhiều union type.

Ví dụ: 

Record

Utility Record sẽ nhận vào hai tham số là keys và value và dựa vào hai tham số đó tạo ra một type mới.

Ví dụ: chúng ta cần tạo ra một type UserRoles có các key là: admin, user, guest và các key này có giá trị là chuỗi.

Readonly

Utility này cho phép chúng ta biến đổi các key trong type trở nên readonly, chỉ xem và không thể chỉnh sửa.

Ví dụ: 

NonNullable

Dùng để loại bỏ undefined và null ra khỏi type.

KẾT LUẬN

Các Utility Type của Typescript rất hữu ích để xử lý các kiểu dữ liệu, tiết kiệm thời gian viết code và tránh sai sót. Chúng cho phép tái sử dụng các định nghĩa kiểu dữ liệu có sẵn để xây dựng các kiểu mới phức tạp hơn.

Tham khảo:

Tư vấn - Báo giá
Mở rộng quy mô doanh nghiệp của bạn với ONETECH!
Hãy liên hệ với chúng tôi để được cung cấp các dịch vụ phát triển phần mềm chất lượng cao với chi phí hợp lý nhất. Các kỹ sư của chúng tôi sẽ giúp bạn phát triển một giải pháp phù hợp để vượt lên đối thủ cạnh tranh của mình.
Mọi thông tin tư vấn và báo giá đều miễn phí.

    「Chính sách bảo mật」Nếu bạn đồng ý với những điều trên, vui lòng nhấp vào nút "Gửi"
    Một email trả lời tự động sẽ được gửi đến địa chỉ email bạn đã nhập, vì vậy hãy kiểm tra điều đó.
    Tư vấn - Báo giá
    Mở rộng quy mô doanh nghiệp của bạn với ONETECH!
    Hãy liên hệ với chúng tôi để được cung cấp các dịch vụ phát triển phần mềm chất lượng cao với chi phí hợp lý nhất. Các kỹ sư của chúng tôi sẽ giúp bạn phát triển một giải pháp phù hợp để vượt lên đối thủ cạnh tranh của mình.
    Mọi thông tin tư vấn và báo giá đều miễn phí.

      「Chính sách bảo mật」Nếu bạn đồng ý với những điều trên, vui lòng nhấp vào nút "Gửi"
      Một email trả lời tự động sẽ được gửi đến địa chỉ email bạn đã nhập, vì vậy hãy kiểm tra điều đó.
      liên hệ