标签
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类型
举例:
unknown 与其它任何类型组成的交叉类型最后都是其它类型
举例:
其他特性
当然还有一些别的 unkonw 特性比如:
- 只能对 unknown 类型进行
相等或不等操作, 不能进行其它操作; - unknown 类型的值不能访问创建实例的属性, 方法;
- 使用映射类型时, 如果遍历的是 unknown 类型, 那么不会映射任何属性;
和 any 的区别
二者都是可以赋值给任意类型的, any 会绕过类型检查,直接可用,而 unkonwn 则必须要在判断完它是什么类型之后才能继续用
和 never 的区别
unknown,never 都不允许执行变量的方法以及访问内部属性;
never 是所有类型的子类型;
参考
TS 中 never,void,unknown类型详解 - 掘金