[英]TypeScript: is there a way to programatically construct an interface using an enum
所以我有一個定義為這個的enum
enum EventType {
JOB,
JOB_EXECUTION,
JOB_GROUP
}
我需要創建一個這樣的界面
interface EventConfigurations {
JOB: {
Enabled?: boolean;
};
JOB_EXECUTION: {
Enabled?: boolean;
};
JOB_GROUP: {
Enabled?: boolean;
};
}
鑒於它們之間存在一對一的映射,我想知道是否有辦法基於enum
生成此interface
? 目前我只是硬編碼它
您可以將其創建為類型(而不是接口),如下所示:
type EventConfigurations = Record<keyof typeof EventType, { Enabled?: boolean }>
解釋:
enum
上使用typeof
會給出一個類型,其每個字符串成員作為鍵和數字作為值。keyof
會給出一個包含每個鍵的聯合類型。Record<K, V>
是從類型K
到類型V
的映射。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.