我想我的方法的返回类型是我的类的属性之一(动态),我怎么能做到这一点?
就像这样:
interface IObject {
[key: string]: any
}
class classX<T extends IObject> {
public methodX(column: keyof T) {
return (null as any) as T[`${column}`] // T['property']
}
}
const varX = new classX<{ property: string }>()
varX.methodX('property') // expected type string
const varY = new classX<{ property: number }>()
varY.methodX('property') // expected type number
1条答案
按热度按时间gjmwrych1#
只需在方法中添加一个泛型约束,并使用它来约束参数和返回类型:
Playground链接