Skip to content
标签
note
字数
330 字
阅读时间
2 分钟

unknow

需要通过类型范围缩小类型断言,才能在 unknown 类型上进行任何操作

举例:

ts
let value: unknown = 123;

console.log(++value )//error:'value' is of type 'unknown'.

console.log(++(value as number) )

unknown 除了与 any 以外, 与其它任何类型组成的联合类型最后都是 unknown 类型

举例:

image.png

image.png

unknown 与其它任何类型组成的交叉类型最后都是其它类型

举例:

image.png

其他特性

当然还有一些别的 unkonw 特性比如:

  1. 只能对 unknown 类型进行 相等 或 不等 操作, 不能进行其它操作;
  2. unknown 类型的值不能访问创建实例的属性, 方法;
  3. 使用映射类型时, 如果遍历的是 unknown 类型, 那么不会映射任何属性;

和 any 的区别

二者都是可以赋值给任意类型的, any 会绕过类型检查,直接可用,而 unkonwn 则必须要在判断完它是什么类型之后才能继续用

和 never 的区别

unknown,never 都不允许执行变量的方法以及访问内部属性;

never 是所有类型的子类型;

参考

TS 中 never,void,unknown类型详解 - 掘金

贡献者

The avatar of contributor named as jiechen jiechen

页面历史

撰写