any kiểu:
Các anyloại đại diện cho tất cả các giá trị JS càng tốt. Mỗi loại được gán để gõ any. Do đó, loại anynày là một siêu kiểu phổ quát của hệ thống loại. Trình biên dịch TS sẽ cho phép mọi thao tác trên các giá trị được nhập any. Ví dụ:
let myVar: any;
myVar[0];
myVar();
myVar.length;
new myVar();
Trong nhiều trường hợp, điều này là quá khoan dung của trình biên dịch TS. tức là nó sẽ cho phép các hoạt động mà chúng ta có thể đã biết dẫn đến lỗi thời gian chạy.
unknown kiểu:
Các unknownloại đại diện (giống như any) tất cả các giá trị JS càng tốt. Mỗi loại được gán để gõ unknown. Do đó, loại unknownnày là một siêu kiểu phổ quát khác của hệ thống loại (cùng với any). Tuy nhiên, trình biên dịch TS sẽ không cho phép bất kỳ thao tác nào trên các giá trị được nhập unknown. Hơn nữa, unknownloại chỉ được gán cho loại any. Một ví dụ sẽ làm rõ điều này:
let myVar: unknown;
let myVar1: unknown = myVar; // No error
let myVar2: any = myVar; // No error
let myVar3: boolean = myVar; // Type 'unknown' is not assignable to type 'boolean'
// The following operations on myVar all give the error:
// Object is of type 'unknown'
myVar[0];
myVar();
myVar.length;
new myVar();
anyđều thíchdynamicvàunknownthíchobject. Tôi thíchunknownvì nó chỉ là loại an toàn hơn. Tên khó hiểu mặc dù.