[英]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.