any类型在ts中可以理解为任意类型,比如一个变量如果设置为any类型,那么它就可以接收任意类型的数据。
let demo: any = 'hello'; // any stringdemo = 100; //any numberdemo = true; // any booleandemo = null; // any nulldemo = undefined; // any undefined
unknown 类型在ts中表示为未知类型,可以理解为不知道是什么类型的类型。
例如:
let demo2: unknown = 100;
但是却不能将unknown类型的数据赋值给一个已知类型的数据。例如:
let demo2: unknown = 100;
let str: string = demo2;
会出现如下的错误提示:
出现这种错误提示的原因很简单,既然不知道什么类型,又怎么能赋值给字符串类型的变量呢?
当然可以通过类型断言,告诉ts,未知类型属于某种类型。
例如:
let demo2: unknown = 100;
let str: string = demo2 as string;
unknown类型还有另外一个作用,就是起到一个中转的作用。
let str3: string = 'hello';
let num2: number = str3 as unknown as number;
如果直接将string类型的变量断言为number 是不被允许的。
