Menu
CoddyTech

Enum hỗn hợp

Thuộc phần Giới thiệu về TypeScript trong hành trình JavaScript của Coddy. Bài học 55 trên 73.

TypeScript cũng hỗ trợ enum không đồng nhất, tức là enum có cả thành viên dạng chuỗi và dạng số trong cùng một khai báo.

Đây là cách bạn tạo một kiểu liệt kê không đồng nhất:

enum MixedEnum {
  No = 0,
  Yes = "YES",
  Maybe = 1
}

Trong ví dụ này, No và Maybe là các thành viên kiểu số, còn Yes là thành viên kiểu chuỗi. TypeScript cho phép sự linh hoạt này, dù cần lưu ý rằng kiểu liệt kê không đồng nhất (heterogeneous enum) hiếm khi được dùng trong thực tế.

challenge icon

Thử thách

Dễ

Tạo một enum hỗn hợp có tên ResponseCode, kết hợp các giá trị chuỗi và số:

  • Success được khởi tạo bằng 200
  • Error được khởi tạo bằng "ERROR"
  • NotFound được khởi tạo bằng 404
  • Timeout được khởi tạo bằng "TIMEOUT"

Tạo một hàm có tên handleResponse nhận một tham số:

  • code có kiểu ResponseCode

Hàm cần:

  • Kiểm tra mã phản hồi và in các thông báo khác nhau tùy theo giá trị
  • Nếu mã là ResponseCode.Success, in "Request successful"
  • Nếu mã là ResponseCode.Error, in "General error occurred"
  • Nếu mã là ResponseCode.NotFound, in "Resource not found"
  • Nếu mã là ResponseCode.Timeout, in "Request timed out"
  • Có kiểu trả về là void

Tạo bốn biến để minh họa các giá trị enum:

  • successCode có kiểu ResponseCode và gán giá trị ResponseCode.Success cho biến này
  • errorCode có kiểu ResponseCode và gán giá trị ResponseCode.Error cho biến này
  • notFoundCode có kiểu ResponseCode và gán giá trị ResponseCode.NotFound cho biến này
  • timeoutCode có kiểu ResponseCode và gán giá trị ResponseCode.Timeout cho biến này

In các đầu ra sau:

  • In giá trị của successCode
  • In giá trị của errorCode
  • In giá trị của notFoundCode
  • In giá trị của timeoutCode
  • Gọi handleResponse với ResponseCode.Success
  • Gọi handleResponse với errorCode
  • Gọi handleResponse với giá trị số 404

Tự làm thử

// TODO: Viết code của bạn tại đây

// Tạo enum ResponseCode


// Tạo hàm handleResponse


// Tạo các biến minh họa


// In ra các đầu ra theo yêu cầu
quiz iconTự kiểm tra

Bài học này có một bài trắc nghiệm ngắn. Bắt đầu bài học để trả lời và theo dõi tiến độ.

Tất cả bài học trong Giới thiệu về TypeScript

Tự luyện tập: Playground TypeScript