【发布时间】:2019-07-21 02:50:24
【问题描述】:
export const enum Enum1{
key1='value1',
key2='value2',
key3='value3',
}
type ObjType = {
[Key in keyof Enum1]: {
some_object: number
}
}
export const obj1:ObjType ={
[Enum1.key1]:{some_object:123},
[Enum1.key2]:{some_object:123},
[Enum1.key3]:{some_object:123}
}
以上代码产生错误:
错误:(145, 3) TS2322: Type '{ [Enum1.key1]: { some_object: number; }; [Enum1.key2]: { some_object: number; }; [Enum1.key3]: { some_object: number; }; }' 不可分配给类型 'Obj'。 对象字面量只能指定已知属性,而 '[Enum1.key1]' 不存在于类型 'Obj' 中。
我想定义一个类型 (ObjType),它的键是 所有 Enum1 枚举的值。
我该怎么做?如果不可能,那么强制 obj1 键包含所有 Enum1 值的正确方法是什么?
【问题讨论】:
标签: javascript typescript