我有一个这样的界面
interface IObject {
a: string;
b: number;
c: string[];
}
我想构建一个这样的函数
function fancyName(obj: IObject, key: keyof IObject, value: any)
目前,您可以将任何您想要的值转化为价值。但我想做这样的事情
key
为 a
,则 value
类型必须为字符串key
为 b
,则 value
类型必须为数字我试过像这样value: IObject[key]
,但它不起作用。因为我认为它不理解我尝试引用另一个参数。我怎样才能在 TS 中实现这一点?
答案 0 :(得分:0)
感谢 Jonrsharpe 让我想到了泛型类型。这就是我实现它的方式
function fancyName<K extends keyof T, T = IProduct>(object: T, key: K, value: T[K])