给定一个带有单个键和值的接口:
interface A {
B : string
}
我希望能够定义键值类型:
interface C {
"key" : B,
"value" : string
}
,但我不想手动执行此操作,我希望能够编写通用类型/接口来进行操作,并基于单个类型的参数进行操作。
例如
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]
interface KeyValueify<T> {
key: keyof T,
value: T[keyof T]
}