簡體   English   中英

Typescript:需要枚舉中的所有鍵才能獲得有效類型

[英]Typescript: Require all keys in enum for valid type

在 Typescript 中,我有一個枚舉如下:
enum User { Bob = "Bob", Sally = "Sally" }

我想確保一個新類型為每個枚舉值定義一個 boolean :

type UserActiveMap {
   User.Bob: boolean
   User.Sally: boolean
}

但是,我不想列出每個枚舉值。
我知道我可以使用keyof typeof但我不確定如何定義類型以確保這種行為:

type UserActiveMap {
   keyof typeof User: boolean
} // wrong

我正在拍攝的實際實現是:

const rightMap: UserActiveMap = { User.Bob = true, User.Sally = false } // valid
const wrongMap: UserActiveMap = { User.Bob = false } // invalid - missing Sally

有什么建議嗎?

原來我很接近語法,但我正在尋找的是:

type UserActiveMap {
   [K in keyof typeof User]: boolean
}

現在,我可以實現:

const MyMap = { User.Bob = true } // invalid type - missing Sally

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM