我正在编写一个函数,需要逐个更新对象的一个字段。这个对象是通过接口T
定义的。
interface T {
a: TypeA;
b: TypeB;
c: TypeC;
}
这个函数应该有以下类型标记:
(key: keyof T, value: typeof T[key]) => void
这将生成错误:
'key'指的是一个值,但在此处被用作类型。您是否意味着'typeof key'?
。 我个人认为我并不是想要 typeof key
,因为 typeof key
会是 T
的任何键,但如果 key = a
等,则我希望 value
属性为类型 TypeA
。
如何选择与 T
的相应键值相关联的类型?
type MyType = {
key: keyof T;
func: (valType: T[keyof T]) => void;
};
但这会返回T
中所有键的valType
。我该如何确保只从key
解释出所需的类型? - aayani