给定具有单个键和值的接口:
interface A {
B : string
}
我希望能够定义键值类型:
interface C {
"key" : B,
"value" : string
}
但我不想手动执行此操作,我希望能够编写通用类型/接口来执行此操作,并基于单个类型参数执行此操作。
EG
interface KeyValueify<T> {
...
}
以上C
相当于KeyValueify<A>
...
中有什么神奇之处可以让它发挥作用?
这是我到目前为止的尝试:
interface KeyValueify<T> {
key : (keyof T)[0],
value : T[(keyof T)[0]]
}
然而,它抱怨无法使用字符串来索引T.
当我尝试解决这个问题时,它似乎只是使用任何类型的值:
interface kv2<T extends {[key :string] : T[(keyof T)[0]]}> {
key : keyof T,
value : T[(keyof T)[0]]
}
赞赏任何想法或变通方法。
答案 0 :(得分:1)
删除[0]
interface KeyValueify<T> {
key: keyof T,
value: T[keyof T]
}