将方法的类型分配给父对象的属性

时间:2018-09-24 15:13:59

标签: typescript typescript-typings

假设我们遇到以下情况:

class SomeClass {
    public someProperty;

    public someMethodA(): void {
         this.someProperty = this.someMethodB()
    }

    public someMethodB() {
        ...some code...
    }
}

我希望 someProperty 的类型与 someMethodB 返回的类型相同。也就是说,如果 someMethodB 返回数字,那么 someProperty 的类型也应该是数字。 如果以后有人改变 someMethodB 的方式改变了返回值的类型,那么 someProperty 的类型也应自动改变。

1 个答案:

答案 0 :(得分:2)

您可以使用查找类型SomeClass["someMethodB"]来引用方法的类型,并使用ReturnType内置类型别名来提取返回类型:

public someProperty: ReturnType<SomeClass["someMethodB"]>;