typescript - 创建一个采用枚举参数的类型

标签 typescript generics enums type-constraints

我正在尝试利用 Record 创建一个可重复使用的类型类型。

enum MyKeys {
  ALPHA = 'ALPHA',
  BETA = 'BETA',
  GAMMA = 'GAMMA',
}

interface MyValues {
  in: any[];
  out: any[];
}

type Case<T> = Record<T, MyValues>;

理想情况下我可以使用 Case<MyKeys>而不是 Record<MyKeys, MyValues> .

Type 'T' does not satisfy the constraint 'string | number | symbol'.

Type 'T' is not assignable to type 'symbol'

最佳答案

类型参数 T 需要限制为有效的索引类型:

type Case<T extends string> = Record<T, MyValues>;

关于typescript - 创建一个采用枚举参数的类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53820177/

相关文章:

javascript - 将文本文件读入 Typescript 中的对象数组中

reactjs - 如何在 createContext 中为 TypeScript 初始化 useState 的 set 函数?

C# 通用条件 where 子句

java - 创建枚举列表?

reactjs - React : context hook, 将对象插入数组

node.js - TypeScript:如何为已安装的 npm 包定义自定义类型?

java - Java中获取泛型类型的类

c# - 使用泛型类型作为泛型参数的最优雅的方法是什么?

C++ 枚举等效项 - 转换为常量表达式

java - 有序列表或集合中的枚举