TypeScript从参数枚举值推断函数返回类型
我使用此函数将枚举转换为一个对象,该对象的属性具有枚举值,其值具有空选项列表:TypeScript从参数枚举值推断函数返回类型,typescript,enums,type-inference,return-type,Typescript,Enums,Type Inference,Return Type,我使用此函数将枚举转换为一个对象,该对象的属性具有枚举值,其值具有空选项列表: export const createDictOfEmptyOptionListsFromEnum = ( enum: Record<string | number, string | number> ) => { type OutputEntry = [number | string, Option[]]; const enumValues = Object.values(enum
export const createDictOfEmptyOptionListsFromEnum = (
enum: Record<string | number, string | number>
) => {
type OutputEntry = [number | string, Option[]];
const enumValues = Object.values(enum);
const entries = enumValues.map((val): OutputEntry => [val, []]);
return Object.fromEntries(entries);
};
有办法去吗
对于初学者来说,
createDictOfEmptyOptionListsFromEnum=什么是MyEnum
以及如何将string | number
转换为MyEnum
s?事实上,我意识到我的建议行不通,因为您将枚举值用作结果对象的键。这可能会导致一些很难追踪到的错误,因为您很容易在结果对象中找到重复的键。@AluanHaddad存在outpuntery
类型,因为否则TS会推断条目为[string | number | any[]][/code>。@AluanHaddad我成功地在函数返回时断言了该类型,根据您在第一条注释中的建议(将Object.fromEntries(entries)返回为{[k in E[keyof E]]:Option[];}
)。如果你愿意的话,我会接受你的回答。非常感谢。
type MyEnumOptionDict = { [k in MyEnum]: Option[] };
const dict: MyEnumOptionDict = createEmptyOptionDict(MyEnum);