假设我有一个这样的界面MyInterface
:
interface MyInterface = {
param1: string;
param2: number;
}
假设函数的参数值本身就是MyInterface
的参数,是否有一种方法可以声明函数的返回类型:
class MyClass<T = MyInterface> {
constructor(private params: T) {
// ...
}
// The question comes here:
get(value: keyof T): T[value] { // Obviously this doesn't work
return this.params[value];
}
}
答案 0 :(得分:0)
您需要捕获value
的类型,例如使用另一个泛型:
type MyInterface = {
param1: string;
param2: number;
}
class MyClass<T = MyInterface> {
constructor(private params: T) {
// ...
}
// Fixed
get<G extends keyof T>(value:G): T[G] {
return this.params[value];
}
}