Ba kiểu đặc biệt, dễ nhầm nhưng vai trò trái ngược:
any: tắt kiểm tra kiểu. Gán qua lại tùy ý, gọi method/property nào cũng được, không cảnh báo → mất toàn bộ an toàn và autocomplete. Là "cửa thoát hiểm", nên tránh; dùng nhiều thì mất lý do dùng TS.unknown: phiên bản an toàn củaany— nhận mọi giá trị (nhưany), nhưng không cho dùng trực tiếp: phải thu hẹp kiểu (narrow) bằngtypeof,instanceof, hoặc type guard trước khi thao tác. Dùng cho giá trị chưa rõ kiểu từ ngoài vào:JSON.parse, response API,catch (e: unknown).never: kiểu không bao giờ có giá trị nào — tập rỗng. Là kiểu trả về của hàm không bao giờ kết thúc bình thường (luônthrowhoặc lặp vô hạn), và là nhánh không thể xảy ra. Dùng để kiểm tra vét cạn (exhaustiveness) trongswitch: gán case còn lại chonever→ nếu quên xử lý một biến thể của union, TS báo lỗi ngay.
Mẹo nhớ: any = "kiểu gì cũng được, khỏi kiểm tra"; unknown = "kiểu gì cũng nhận, nhưng phải kiểm tra trước khi dùng"; never = "không có kiểu nào ở đây".