Literal type là gì?

Noun Programming Typescript

Trong ngôn ngữ lập trình Typescript, literal type có nghĩa là giá trị là một giá trị chính xác. Ví dụ: một string literal của "test" có nghĩa là giá trị của biến chỉ có thể là "test". Một literal type có thể được tạo thành từ nhiều kiểu (type) hoặc giá trị từ các kiểu dữ liệu nguyên thủy (primitive type) trong JavaScript.

String literal

String literal là một cách để định nghĩa một chuỗi (string) giới hạn các giá trị được sử dụng. Nó được sử dụng chủ yếu với union, cho phép chỉ định nhiều hơn một giá trị chuỗi. Hãy tưởng tượng rằng bạn cho phép một vài giá trị của chuỗi nhưng muốn giới hạn lựa chọn cho những giá trị cụ thể. Bạn có thể sử dụng kiểu liệt kê (enumeration), nhưng một chuỗi có thể rõ ràng hơn hoặc tương thích với các thư viện (library) hiện có. Ví dụ: bạn có thể muốn giới hạn giá trị là "north", "south", "east" hoặc "west".


let direction: string = "no-where" // We desired to be "north", "south", "east", "west".

Để tạo một string literal, chúng ta xác định từng giá trị được phân tách bằng ký hiệu ống dẫn | (union các giá trị). TypeScript sẽ không biên dịch (compile) nếu nó nằm ngoài phạm vi đã xác định. Đoạn mã dưới đây không biên dịch vì yourDirection có giá trị là "no-where" không thuộc một trong bốn giá trị đã định nghĩa.


type Direction = "north" | "south" | "east" | "west";
let myDirection:Direction = "north";
let yourDirection:Direction = "no-where"; // Does not compile

Number literal

Tương tự, có thể sử dụng các số như một tập hợp các giá trị. Sử dụng nhiều số đã định nghĩa sẽ thuận tiện nếu bạn có một bộ giá trị mà bạn chấp nhận nhưng không phải là tất cả các số. Ví dụ: nếu bạn tạo một framework mà bạn muốn tạo một hệ thống lưới (grid system) hoạt động trên lưới mười hai cột (column), bạn có thể hạn chế các lựa chọn từ một đến mười hai.


type Column = 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12;
let menuSize: Column = 4;
let mainContent: Column = 100; // Does not compile because only accept 1 to 12

Learning English Everyday