Typescript中接口的通用键值

时间:2019-05-14 15:04:13

标签: typescript generics interface

我想创建一个接口,该接口的通用键受枚举限制,以确保该接口仅接受某些键和值。

我想象做这样的事情

interface IFruit<TargetKey extends string, TargetValue> {
  [key: TargetKey]: TargetValue;
}

可以使用以下命令定义接口的地方:

enum Keys {
  APPLES = 'APPLES',
  ORANGES = 'ORANGES',
}

enum Values {
  GREEN = 'GREEN',
  BLUE = 'BLUE',
  ORANGE = 'ORANGE',
}

const test: IFruit<Keys, Values> = {
  Keys.APPLES: Values.GREEN,
  'POTATOES': 'BLUE', // Should give an error, as key is not in Keys enum
}

我不确定这是否有可能实现。到目前为止,我收到了索引签名错误An index signature parameter type must be 'string' or 'number'。有办法使它起作用吗?

0 个答案:

没有答案