TypeScript从参数枚举值推断函数返回类型

时间:2020-09-08 12:52:34

标签: 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);
  const entries = enumValues.map((val): OutputEntry => [val, []]);
  return Object.fromEntries(entries);
};

这将导致返回类型为{ [k: string] : Option[] }

然后我需要像这样手动缩小返回类型:

type MyEnumOptionDict = { [k in MyEnum]: Option[] };
const dict: MyEnumOptionDict = createEmptyOptionDict(MyEnum);

有没有办法

  1. 使Typescript自动推断出缩小的返回类型,或者
  2. 至少制作一个通用类型,该通用类型在提供枚举时将返回缩小的输入类型

0 个答案:

没有答案