Skip to content

16.unknown

一.unknown类型

unknown类型,任何类型都可以赋值为unknown类型。 它是 any 类型对应的安全类型

ts
let unknown:unknown;
unknown = 'zf';
unknown = 11;

不能访问unknown类型上的属性,不能作为函数、类来使用

  • 联合类型中的unknown

    ts
    type UnionUnknown = unknown | null | string | number

    联合类型与unknown都是unknown类型

  • 交叉类型中的unknown

    ts
    type inter = unknown & null

    交叉类型与unknown都是其他类型

二.unknown特性

  • never是unknown的子类型

    ts
    type isNever = never extends unknown ? true : false;=
  • keyof unknown 是never

    ts
    type key = keyof unknown;

    1

  • unknown类型不能被遍历

    ts
    type IMap<T> = {
        [P in keyof T]:number
    }
    type t = IMap<unknown>;

unknown类型不能和number类型进行 +运算,可以用于等或不等操作