首页 > 解决方案 > 打字稿参数类型引用另一个参数

问题描述

我有这样的界面

interface IObject {
   a: string;
   b: number;
   c: string[];
}

我想建立一个这样的功能

function fancyName(obj: IObject, key: keyof IObject, value: any)

目前,您可以将任何您想要的东西转化为价值。但我想做这样的事情

我试过这样做value: IObject[key],但它不起作用。因为我认为它不理解我尝试引用另一个参数。我怎样才能在 TS 中实现这一点?

标签: typescript

解决方案


感谢 Jonrsharpe 让我想到了泛型类型。这就是我实现它的方式

function fancyName<K extends keyof T, T = IProduct>(object: T, key: K, value: T[K])

推荐阅读