所以我有一个enum
定义为
enum EventType {
JOB,
JOB_EXECUTION,
JOB_GROUP
}
我需要创建一个这样的界面
interface EventConfigurations {
JOB: {
Enabled?: boolean;
};
JOB_EXECUTION: {
Enabled?: boolean;
};
JOB_GROUP: {
Enabled?: boolean;
};
}
鉴于它们之间存在一对一的映射关系,我想知道是否存在一种基于interface
生成此enum
的方法吗?目前,我只是对其进行了硬编码
答案 0 :(得分:4)
您可以像这样将其创建为一种类型(而不是接口):
type EventConfigurations = Record<keyof typeof EventType, { Enabled?: boolean }>
说明:
typeof
上使用enum
给出了一种类型,其每个字符串成员均作为键,而数字则作为值。keyof
可以得到包含每个键的联合类型。Record<K, V>
是从类型K
到类型V
的映射。