【发布时间】:2022-01-04 14:19:15
【问题描述】:
下面是我的枚举:
export enum MyEnum {
Enum1 = 'Enum 1',
Enum2 = 'Enum 2',
Enum3 = 'Enum 3',
Enum4 = 'Enum 4',
Enum5 = 'Enum 5',
}
我想为如下所示的示例对象创建一个类型:
const testData = {
test1: {
Enum1: 'Enum 1',
Enum2: 'Enum 2',
},
test2: {
Enum1: 'Enum 1',
Enum2: 'Enum 2',
Enum3: 'Enum 3',
Enum4: 'Enum 4',
},
test2: {
Enum1: 'Enum 1',
Enum2: 'Enum 2',
Enum4: 'Enum 4',
},
};
到目前为止,我可以想出:
type FilteredBuyableMethods = {
[key: string]: Partial<{
[key in MyEnum]: string
}>
};
如何将[key in MyEnum]: string 中的string 替换为密钥的确切值?
所以,如果键是Enum1,它的值应该只是'Enum 1'等等。
此外,附加到testData 中可用的键(例如test1、test2)的值(具有枚举键和值的对象)应该是来自枚举MyEnum 的值。不一定所有来自枚举 MyEnum 的值都应该存在(部分),但除了枚举键值对之外,不应添加任何随机键值对。感谢期待。
【问题讨论】:
-
请提供有关约束的更多信息。 Enum 的键和值是否相同?此语法
Enum1 = 'Enum 1'在对象文字中无效。请分享没有类型错误的可重现示例 -
this 适合你吗?
-
@captain-yossarian 键和值将是相同的。我已经更新了代码。
标签: javascript typescript object types enums