Typescript:我可以强制一个函数参数为valueof T[key],使用另一个参数为key typed keyo



给定如下内容:

type MyType = {
key1: string;
key2: object;
};
function myFunc (param1: keyof MyType, param2: ?)

是否可以将param2类型/强制执行为MyType[key]类型,就像我可以对MyType["key2"]做的那样?

使用泛型,您可以使用传递的键作为类型参数,然后在param2中引用它。

function myFunc<T extends keyof MyType> (param1: T, param2: MyType[T]) {
}
myFunc('key1', 'foo'); // works
myFunc('key1', 5); // fails

最新更新