typescript - 打字稿:要求枚举中的所有键都是有效类型
问题描述
在打字稿中,我有一个枚举如下:
enum User { Bob = "Bob", Sally = "Sally" }
我想确保一个新类型为每个枚举值定义一个布尔值:
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
推荐阅读
- javascript - 建议通过 blob 注入脚本吗?
- c - 情况 3:如果 n 是 3 和 5 的倍数
- javascript - 获取数组的平均数,如果其中一个在 JS 上为 -1,则中断
- c# - aspNetHidden div 未根据客户端提供服务
- javascript - Android 的 BuiltInZoom 在混合应用程序中不起作用
- c# - 在这种情况下,C# 还会调用 Dispose 吗?
- javascript - 如何暂停javascript for循环(动画冒泡排序)?
- javascript - 角度 ngClass 指令未应用
- snowflake-cloud-data-platform - Snowflake中的工作表、错误表和日志表?
- javascript - Netsuite SuiteScript:用于从自定义记录和默认字段打开新事务的按钮