打字稿中的 Record<string, any> 和 Record<string, unkown> 之间有什么区别?

Yun*_* He 5 javascript frontend typescript

我正在练习类型,然后遇到了这种问题,我看了一些帖子,仍然无法\xe2\x80\x99找出原因。

\n
type A = (() => true) extends Record<string, any> ? true : false; // => true\ntype B = (() => true) extends Record<string, unknown> ? true : false; // false\n
Run Code Online (Sandbox Code Playgroud)\n

小智 -1

any和之间的基本区别unknown在于我们将其分配给其他变量的方式。unknown是类型安全的,因此将一个变量分配给unkown具有特定类型的其他变量是不可能的。

我想你可以阅读更多关于这两篇文章的内容。

  1. “未知”与“任何”
  2. https://mariusschulz.com/blog/the-unknown-type-in​​-typescript

  • 这个答案并没有解释为什么箭头函数*是*`Record&lt;string,any&gt;`但*不是*`Record&lt;string,unknown&gt;`。 (2认同)