给定如下内容:
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