簡體   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