TypeScript Các kiểu đơn giản
TypeScript hỗ trợ một số kiểu đơn giản (nguyên thủy) mà bạn có thể biết.
Có ba nguyên thủy chính trong JavaScript và TypeScript.
-
boolean
- giá trị đúng hoặc sai -
number
- số nguyên và giá trị dấu phẩy động -
string
- giá trị văn bản như "TypeScript Rocks"
Ngoài ra còn có 2 kiểu nguyên thủy ít phổ biến hơn được sử dụng trong các phiên bản Javascript và TypeScript sau này.
-
bigint
- số nguyên và giá trị dấu phẩy động, nhưng cho phép số âm và số dương lớn hơn loạinumber
. -
symbol
được sử dụng để tạo ra một mã định danh duy nhất trên toàn cầu.
Loại bài tập
Khi tạo một biến, có hai cách chính mà TypeScript gán một loại:
- rõ ràng
- ngầm
Trong cả hai ví dụ bên dưới firstName
đều thuộc loại string
Loại rõ ràng
Rõ ràng - viết ra loại:
let firstName: string = "Dylan";
Hãy tự mình thử »Phân công loại rõ ràng dễ đọc hơn và có chủ ý hơn.
Loại ngầm định
Ẩn ý - TypeScript sẽ "đoán" loại, dựa trên giá trị được chỉ định:
let firstName = "Dylan";
Hãy tự mình thử »Lưu ý: Việc TypeScript "đoán" loại giá trị được gọi là suy luận .
Phép gán ngầm buộc TypeScript suy ra giá trị.
Việc gán kiểu ngầm định ngắn hơn, gõ nhanh hơn và thường được sử dụng khi phát triển và thử nghiệm.
Được chứng nhận!
$45 ĐĂNG KÝ
Lỗi khi gán loại
TypeScript sẽ báo lỗi nếu kiểu dữ liệu không khớp.
Ví dụ
let firstName: string = "Dylan"; // type string
firstName = 33; // attempts to re-assign the value to a different type
Hãy tự mình thử » Việc gán kiểu ngầm định sẽ làm cho firstName
ít được chú ý hơn dưới dạng string
, nhưng cả hai sẽ gây ra lỗi:
Ví dụ
let firstName = "Dylan"; // inferred to type string
firstName = 33; // attempts to re-assign the value to a different type
Hãy tự mình thử »JavaScript sẽ không đưa ra lỗi đối với các loại không khớp.
Không thể suy luận
TypeScript không phải lúc nào cũng có thể suy ra chính xác loại biến có thể là gì. Trong những trường hợp như vậy, nó sẽ đặt loại thành any
nào sẽ vô hiệu hóa việc kiểm tra loại.
Ví dụ
// Implicit any as JSON.parse doesn't know what type of data it returns so it can be "any" thing...
const json = JSON.parse("55");
// Most expect json to be an object, but it can be a string or a number like this example
console.log(typeof json);
Hãy tự mình thử » Hành vi này có thể bị vô hiệu hóa bằng cách bật noImplicitAny
làm tùy chọn trong dự án tsconfig.json
của TypeScript. Đó là tệp cấu hình JSON để tùy chỉnh cách hoạt động của một số TypeScript.
Lưu ý: bạn có thể thấy các kiểu nguyên thủy được viết hoa như Boolean
.
boolean !== Boolean
Đối với hướng dẫn này, chỉ cần biết sử dụng các giá trị viết thường, các giá trị viết hoa dành cho các trường hợp rất cụ thể.