Sử dụng Enum trong TypeScript

Giới thiệu nội dung bài viết

Chào các bạn, hôm nay anh sẽ hướng dẫn mọi người về Enum là như thế nào?

1. Enum là gì

Typescript cũng hỗ trợ Enum giống như Enum trong Java vậy. Enum cho phép chúng ta tạo một nhóm các giá trị hằng số trong một nơi chung.

Có 3 loại Enum là Numeric, String, Heterogeneous.

2. Numeric Enum là gì

Chúng ta sử dụng từ khóa enum để tạo Enum.

1
2
3
4
5
6
enum PrintMedia {
  Newspaper,
  Newsletter,
  Magazine,
  Book
}

Các vị trí của enum được tính từ 0 và được tăng lên 1 đơn vị. Như vậy giá trị của Newspaper, Newsletter, Magazine, Book.

1
2
3
4
Newspaper = 0
Newsletter = 1
Magazine = 2
Book = 3

Enum luôn được gán giá trị là số khi chúng được lưu. Giá trị đầu tiên luôn là 0 và các giá trị tiếp theo là tăng lên 1.

Chúng ta có thể gán giá trị khởi tạo ban đầu cho Enum.

1
2
3
4
5
6
enum PrintMedia {
  Newspaper = 1,
  Newsletter,
  Magazine,
  Book
}

Như vậy giá trị Newspaper là 1, thì giá trị Newsletter là 2, Magazine là 3 và Book là 4. Nếu không gán giá trị thì mặc định là 0.

  • Trả về giá trị Numeric Enum trong function**

Chúng ta có thể trả về kết quả Enum trong function như sau:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
enum PrintMedia {
    Newspaper = 1,
    Newsletter,
    Magazine,
    Book
}

function getMedia(mediaName: string): PrintMedia {
    if (  mediaName === 'Forbes' || mediaName === 'Outlook') {
        return PrintMedia.Magazine;
    }
 }

let mediaType: PrintMedia = getMedia('Forbes'); // returns Magazine

3. String Enum là gì

Chúng ta có thể sử dụng String trong enum như sau:

1
2
3
4
5
6
7
8
9
enum PrintMedia {
    Newspaper = "NEWSPAPER",
    Newsletter = "NEWSLETTER",
    Magazine = "MAGAZINE",
    Book = "BOOK"
}
// Access String Enum 
PrintMedia.Newspaper; //returns NEWSPAPER
PrintMedia['Magazine'];//returns MAGAZINE

4. Heterogeneous Enum là gì

Heterogeneous là có thể chứa chữ và số.

1
2
3
4
5
enum Status { 
    Active = 'ACTIVE', 
    Deactivate = 1, 
    Pending
}

Mọi người hãy Subscribe kênh youtube dưới đây nhé để cập nhật các video mới nhất về kỹ thuật và kỹ năng mềm

Các khoá học lập trình MIỄN PHÍ tại đây


Comments