any 和 unknown
2022-10-30 本文已影响0人
抽疯的稻草绳
TypeScript 3.0 引入了一个顶级的 unknown 类型。 对照于 any,unknown 是类型安全的。 任何值都可以赋给 unknown,但是当没有类型断言或基于控制流的类型细化时 unknown 不可以赋值给其它类型,除了它自己和 any 外。 同样地,在 unknown 没有被断言或细化到一个确切类型之前,是不允许在其上进行任何操作的。
任何类型都可以赋值给 unknown 类型,但是 unknown 类型除了赋值给 any 和它本身之外,不可以赋值给其他类型
const a: any = 1;
let b: unknown;
b = a;
// any类型也可以赋值给unknown类型
- 但是any 可以赋值给任意类型,也可以接收任意类型的赋值
unknown 在没有明确它类型的情况下,不可以使用上面的任何属性和方法
所以,unknown 比 any 更安全