[英]Why does `keyof object` return a never type?
为什么keyof object
返回 never 类型?
我认为正确的应该是number | string | symbol
number | string | symbol
type T = keyof object // never
object
类型中没有任何键。 因此,您不会收到您期望的联合,而只是类型never
代替。
object
类型几乎与{}
表示相同的东西。 区别在于object
只接受非基元,而{}
接受任何不是null
或undefined
的东西。 (感谢评论中的@jcalz)。 查看{}
似乎很明显,类型上没有键。 由于没有 map TypeScript 的键,因此只返回类型never
。
请注意, {}
在您的情况下是一种类型,而不是一个值。 你不能/不必做类似的事情
type T = typeof {};
// ~ --> Identifier expected.ts(1003)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.