Giải mã các kiểu dữ liệu trong TypeScript

TypeScript dựa trên một hệ thống kiểu dữ liệu. Làm chủ được nó là bước đầu tiên để bạn viết mã tốt hơn.

Các kiểu dữ liệu cơ bản

TypeScript sử dụng các kiểu dữ liệu tương tự như các kiểu nguyên thủy (primitives) trong JavaScript: • string: Dùng cho văn bản. • number: Dùng cho tất cả các loại số (số nguyên và số thực). • boolean: Dùng cho các giá trị true hoặc false.

Suy luận kiểu (Type Inference)

Bạn không phải lúc nào cũng cần phải viết kiểu dữ liệu. TypeScript thường tự đoán kiểu dựa trên giá trị bạn cung cấp. Điều này được gọi là sự suy luận (inference).

Một quy tắc hữu ích: • Hãy để TypeScript tự suy luận kiểu cho các biến cục bộ. • Hãy viết kiểu dữ liệu rõ ràng cho các tham số hàm và kiểu trả về.

Mảng (Arrays) và Tuple

Mảng lưu trữ nhiều giá trị có cùng một kiểu dữ liệu. • Ví dụ: let tags: string[] = ["ts", "js"];

Tuple là các mảng có độ dài cố định và các kiểu dữ liệu cụ thể cho từng vị trí. • Ví dụ: let user: [string, number] = ["Ramesh", 31];

Kiểu kết hợp (Union Types)

Sử dụng union types khi một giá trị có thể thuộc nhiều hơn một kiểu dữ liệu. • Ví dụ: let id: string | number = "abc123";

Các kiểu đặc biệt

Bốn kiểu dữ liệu thường gây nhầm lẫn cho người mới bắt đầu:

  1. any Kiểu này sẽ tắt tính năng kiểm tra kiểu. Nó khiến mã của bạn hoạt động giống như JavaScript thuần túy. Hãy sử dụng nó như một lựa chọn cuối cùng.

  2. unknown Đây là phiên bản an toàn của any. Nó cho biết giá trị có thể là bất cứ thứ gì, nhưng bạn phải kiểm tra kiểu trước khi sử dụng nó.

  3. void Sử dụng cho các hàm không trả về giá trị.

  4. never Sử dụng cho các hàm không bao giờ kết thúc, chẳng hạn như các hàm ném ra lỗi hoặc chạy vòng lặp vô tận.

Tóm tắt quy trình làm việc của bạn: • Sử dụng các kiểu nguyên thủy cho hầu hết dữ liệu. • Sử dụng suy luận kiểu để giữ cho mã nguồn sạch sẽ. • Sử dụng union types cho các đầu vào linh hoạt. • Tránh dùng any. • Sử dụng unknown thay vì any khi bạn không chắc chắn.

Nguồn: https://dev.to/ramesh_s_a8f0867d239e927c/typescript-types-demystified-simple-types-special-types-and-type-inference-5bf0