Trong TypeScript, bạn có thể sử dụng enum để định nghĩa một tập hợp các giá trị có tên xác định. Enum cho phép bạn sử dụng các giá trị có thể là số hoặc chuỗi. Để tạo một enum với các giá trị chuỗi, bạn chỉ cần gán giá trị chuỗi cho từng thành viên của enum.

Cú pháp cơ bản

Dưới đây là cú pháp để tạo một enum với các giá trị chuỗi:

enum EnumName {
    MemberName1 = "Value1",
    MemberName2 = "Value2",
    MemberName3 = "Value3",
}

Ví dụ thực tế

Dưới đây là một ví dụ về việc tạo một enum cho các trạng thái của một tác vụ:

enum TaskStatus {
    Todo = "TODO",
    InProgress = "IN_PROGRESS",
    Completed = "COMPLETED",
    Blocked = "BLOCKED"
}

// Sử dụng enum
const logTaskStatus = (status: TaskStatus) => {
    switch (status) {
        case TaskStatus.Todo:
            console.log("Task is todo.");
            break;
        case TaskStatus.InProgress:
            console.log("Task is in progress.");
            break;
        case TaskStatus.Completed:
            console.log("Task is completed.");
            break;
        case TaskStatus.Blocked:
            console.log("Task is blocked.");
            break;
        default:
            console.log("Unknown status.");
            break;
    }
};

// Ví dụ sử dụng
logTaskStatus(TaskStatus.Todo);         // Output: Task is todo.
logTaskStatus(TaskStatus.Completed);     // Output: Task is completed.

Giải thích ví dụ

  1. Định nghĩa Enum: Enum TaskStatus được định nghĩa với bốn thành viên, mỗi thành viên được gán một giá trị chuỗi tương ứng. Điều này giúp mã dễ đọc và dễ hiểu hơn.
  2. Sử dụng Enum: Hàm logTaskStatus nhận tham số status kiểu TaskStatus. Khi gọi hàm với các giá trị thuộc enum, nó sẽ in ra trạng thái tương ứng.
  3. Chạy ví dụ: Các dòng logTaskStatus(TaskStatus.Todo);logTaskStatus(TaskStatus.Completed); sẽ in ra thông báo tương ứng với trạng thái của tác vụ.

Lợi ích của việc sử dụng enum với giá trị chuỗi

  • Dễ đọc và dễ bảo trì: Các giá trị có tên giúp hiểu rõ hơn về mục đích của từng trạng thái.
  • Kiểm tra kiểu tốt hơn: TypeScript sẽ đảm bảo rằng chỉ các giá trị được xác định trong enum mới có thể được sử dụng, giúp giảm thiểu lỗi trong mã.
  • Tính mở rộng: Nếu cần thêm trạng thái mới, bạn chỉ cần thêm một thành viên mới vào enum mà không phải thay đổi các phần khác trong mã.

Kết luận

Enum với các giá trị chuỗi trong TypeScript là một công cụ hữu ích để quản lý các giá trị xác định trong ứng dụng. Chúng không chỉ làm cho mã trở nên dễ đọc và bảo trì hơn mà còn cung cấp kiểm tra kiểu mạnh mẽ, giúp phát triển ứng dụng an toàn hơn.