繁体   English   中英

为什么`keyof object`返回never类型?

[英]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只接受非基元,而{}接受任何不是nullundefined的东西。 (感谢评论中的@jcalz)。 查看{}似乎很明显,类型上没有键。 由于没有 map TypeScript 的键,因此只返回类型never

请注意, {}在您的情况下是一种类型,而不是一个值。 你不能/不必做类似的事情

type T = typeof {};
             // ~ --> Identifier expected.ts(1003)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM