打字稿抽象类方法访问派生类属性

时间:2017-07-25 22:40:01

标签: oop typescript inheritance abstract

abstract class MyClass() {
    protected static foo: Array<number>;

    protected static doWorkOnFoo(): void {
        let x: number = 0;

        for (let f of | what goes here? this? self?|.foo) {
            x = x + foo;
        }
    }
}

实现抽象类,并希望派生类具有静态属性和对这些属性进行操作的静态方法时,如何访问抽象类中的那些,以便派生类可以只使用该方法?

我知道这可以通过在静态属性上设置默认值并使用this来解决,但这引起了我的兴趣,我很想知道是否有某种方式从TS中的抽象类访问泛型派生类或其他东西。

提前致谢!

编辑:

虽然我无法找到我想要的内容(请参阅注释),但可行的解决方案是将doWorkOnFoo()方法的签名更改为以下内容:

protected static doWorkOnFoo(): (typeof MyClass) => void;

由于它已经是一个抽象类,它可以将派生类作为参数,然后引用派生类的静态属性。

0 个答案:

没有答案