Home Công nghệ Kiểu enum trong TypeScript: làm việc như thế nào, sử dụng ra...

Kiểu enum trong TypeScript: làm việc như thế nào, sử dụng ra sao

878
Chúng ta sẽ trả lời 2 câu hỏi sau: enum của TypeScript làm việc như thế nào? Nó được sử dụng để làm gì. Vỡ lòng cho người mới viết TypeScript

Các khái niệm căn bản của enum

Javascript chỉ có đúng một kiểu mà giá trị bị ràng buộc rất cụ thểboolean, giá trị chỉ được phép là true hoặc false, không chấp nhận một giá trị nào khác. Enum là phiên bản mở rộng với công dụng tương tự như boolean


2 giá trị No Yes được gọi là thành viên của hội enum NoYes. Dùng nó như một object, chúng ta có thể chấm đến giá trị đó


Tất cả thành viên của hội enum đều được cấp một thẻ thành viên gồm name và value. Ở trên chúng ta chỉ đang khai báo phần name cho enum, value lúc đó sẽ lấy mặc định là số từ 0 đi lên


Nếu cà khịa, khai báo như thế này


Đồng nghĩa là các giá trị kế tiếp sẽ tự động tăng lên một, so với giá trị khai báo trước đó


Về cách đặt tên (name) trong enum, cũng có vài ba lựa chọn

  • Đặt theo kiểu JavaScript, viết hoa hết, Number,MAX_VALUE
  • Đặt theo kiểu symbol, con lạc đà, chữ đầu viết thường, Symbol.asyncIterator
  • Kiểu TypeScript, con lạc đà, chữ đầu viết hoa, Number.MaxValue

Tương tự như object, chúng ta có thể truy xuất đến một thành viên của hội bằng cách viết sau


Giá trị value của enum, không bắt buộc là một number, có thể là một string


Còn một cách khai báo, ít được sử dụng, là kiểu xăng pha nhớt, các giá trị trong enum có thể là số cũng có thể là chữ


Theo như kinh nghiệm từ các bật tiền bối, sử dụng enum thì nên dùng kiểu giá trị string


Nếu có log ra chúng ta cũng biết được giá trị chính xác là gì, đỡ hack não ngồi đếm số thứ tự


Thêm nữa, ràng buộc được luôn kiểu giá trị

Trường hợp sử dụng enum

hằng số nhiều giá trị

Nếu chúng ta có một mớ các hằng số, có quan hệ họ hàng gần với nhau


Có thể dùng enum


Lợi ích mang lại: nhóm lại với nhau một cục, TypeScript dễ đàng kiểm tra giúp chúng ta

Tường minh hơn boolean

Chúng ta hay dùng boolean để làm cờ bật tắt hoặc đảo ngược giá trị


Nếu dùng enum, nó sẽ rõ nghĩa hơn, nhiều lựa chọn hơn

String là một hằng số đúng nghĩa, an toàn hơn vì không thể thay đổi được giá trị

Ví dụ hàm bên dưới dùng const

dùng enum tiện hơn


Enum lúc chạy thì sẽ trở thành gì?

Sau khi TypeScript đã compile, enum sẽ được được chuyển thành javascript object

TopDev via Vuilaptrinh

SHARE