我想创建一个接口,该接口的通用键受枚举限制,以确保该接口仅接受某些键和值。
我想象做这样的事情
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'
。有办法使它起作用吗?