Sự khác biệt giữa kiểu unknown và any là gì?
Sự khác biệt giữa kiểu unknown và any là gì?
Sự khác biệt chính giữa kiểu unknown
và any
trong TypeScript nằm ở mức độ kiểm tra kiểu dữ liệu mà TypeScript thực hiện khi bạn làm việc với các biến của hai kiểu này.
Kiểu any
cho phép bạn gán bất kỳ giá trị nào cho biến và thực hiện bất kỳ thao tác nào mà không cần kiểm tra kiểu dữ liệu. Điều này có nghĩa là TypeScript sẽ không thực hiện kiểm tra kiểu dữ liệu tại thời điểm biên dịch, dẫn đến việc bạn có thể gặp phải lỗi tại thời điểm chạy chương trình (runtime) mà không được cảnh báo trước[5][7].
Ngược lại, kiểu unknown
được giới thiệu như một cách an toàn hơn để làm việc với các giá trị không xác định. Bạn vẫn có thể gán bất kỳ giá trị nào cho một biến kiểu unknown
, nhưng khi bạn cố gắng thực hiện thao tác với biến đó, TypeScript sẽ yêu cầu bạn phải xác nhận rõ ràng kiểu dữ liệu của biến trước khi thực hiện thao tác. Điều này giúp ngăn chặn các lỗi tiềm ẩn do thao tác với các giá trị không xác định kiểu dữ liệu[1][7].
Ví dụ, nếu bạn có một biến kiểu unknown
và muốn gọi một phương thức trên biến đó, bạn sẽ cần phải kiểm tra kiểu dữ liệu của biến hoặc ép kiểu biến đó sang một kiểu dữ liệu cụ thể trước khi gọi phương thức. Điều này giúp đảm bảo rằng bạn không thực hiện các thao tác không an toàn mà có thể dẫn đến lỗi tại thời điểm chạy chương trình[5].
Tóm lại, sự khác biệt giữa unknown
và any
nằm ở việc unknown
cung cấp một lớp bảo vệ thêm bằng cách yêu cầu kiểm tra kiểu dữ liệu trước khi thực hiện các thao tác, trong khi any
cho phép thực hiện mọi thao tác mà không cần kiểm tra kiểu dữ liệu, làm tăng nguy cơ phát sinh lỗi.
Citations:
[1] https://glints.com/vn/blog/cau-hoi-phong-van-typescript/
[2] https://kungfutech.edu.vn/bai-viet/angular/typescript-trong-angular-nang-cao
[3] https://www.phongvanit.com/cau-hoi/lam-the-nao-de-chon-giua-never-unknown-va-any-tron-107882
[4] https://duypt.dev/cac-types-thuong-dung-hang-ngay-trong-typescript
[5] https://viblo.asia/p/tim-hieu-unknow-type-cua-typescript-m68Z0x8NZkG
[6] https://longnv.name.vn/lap-trinh-typescript/cac-kieu-du-lieu-trong-typescript
[7] https://stackoverflow.com/questions/51439843/unknown-vs-any
[8] https://www.phongvanit.com/ky-nang/typescript-1039
senior
Gợi ý câu hỏi phỏng vấn
Chưa có bình luận nào