any类型在ts中可以理解为任意类型,比如一个变量如果设置为any类型,那么它就可以接收任意类型的数据。

    1. let demo: any = 'hello'; // any string
    2. demo = 100; //any number
    3. demo = true; // any boolean
    4. demo = null; // any null
    5. demo = undefined; // any undefined

    unknown 类型在ts中表示为未知类型,可以理解为不知道是什么类型的类型。

    例如:

    let demo2: unknown = 100;
    

    但是却不能将unknown类型的数据赋值给一个已知类型的数据。例如:

    let demo2: unknown = 100; 
    let str: string = demo2;
    

    会出现如下的错误提示:
    image.png

    出现这种错误提示的原因很简单,既然不知道什么类型,又怎么能赋值给字符串类型的变量呢?

    当然可以通过类型断言,告诉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 是不被允许的。