我在练习这个类型,然后遇到了这种问题,我读了一些帖子,仍然不明白为什么。
type A = (() => true) extends Record<string, any> ? true : false; // => true
type B = (() => true) extends Record<string, unknown> ? true : false; // false
any
和unknown
之间的基本区别在于我们将其分配给其他变量的方式。unknown
是类型安全的,因此当您将具有unkown
的变量分配给具有特定类型的其他变量时,这是不可能的。
我想你可以阅读更多关于这两个帖子的内容。
- ';未知';与';任何'
- https://mariusschulz.com/blog/the-unknown-type-in-typescript