typescript - TypeScript 从参数枚举值推断函数返回类型
问题描述
我正在使用此函数将 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);
};
这导致返回类型为 { [k: string] : Option[] }
然后我需要手动缩小返回类型,如下所示:
type MyEnumOptionDict = { [k in MyEnum]: Option[] };
const dict: MyEnumOptionDict = createEmptyOptionDict(MyEnum);
有没有办法
- 使 Typescript 自动推断缩小的返回类型或
- 至少创建一个泛型类型,在提供枚举时返回缩小的输入类型
解决方案
推荐阅读
- ios - 如何在 Xcode 项目中使用 C 库?
- image - 在 SwiftUI 中使用 PencilKit 将绘图转换为图像
- sas - 比较 SAS 中不同版本的 PDF 文档
- java - 使用 @Query 调用存储过程会导致异常:调用 ProcedureName 时参数的数量或类型错误
- return - 中断 LPC 微控制器上的寄存器写操作
- javascript - 跨浏览器 3D 动画
- load-balancing - 两个基于 4G 加密狗的 ISP 需要负载平衡路由器
- sql - 如何根据字母顺序仅保留 1 个结果以与 SQL 查询保持一致?
- php - 将照片上传到数据库(到服务器而不是本地主机)
- javascript - 根据字符串在对象数组中查找嵌套对象