创建一个带有枚举参数的类型

Tho*_*ggi 2 generics enums type-constraints typescript

我试图利用该Record类型创建可重用的类型。

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

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

type Case<T> = Record<T, MyValues>;
Run Code Online (Sandbox Code Playgroud)

理想情况下,我可以使用Case<MyKeys>代替Record<MyKeys, MyValues>

类型“ T”不满足约束“字符串| 编号 符号'。

类型“ T”不可分配给类型“符号”

Aar*_*all 5

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

type Case<T extends string> = Record<T, MyValues>;
Run Code Online (Sandbox Code Playgroud)