TypeScript:具有抽象方法的多态主义

时间:2019-03-01 20:30:53

标签: typescript polymorphism abstract-class

我该如何做?

abstract class Animal {
    // No constructor
    ...    
    public abstract me():Animal;
}

class Cat extends Animal {
    constructor() {
        super();
    }

    // This fails! Why? Isn't every cat an Animal?
    me():Cat {
        return this;
    }
}

我收到此错误:

  

类型'this'不能分配给类型'动物'。

1 个答案:

答案 0 :(得分:0)

我终于做到了。事实证明,如果我没有正确实现抽象类中的每个方法,则打字稿无法判断子类是否扩展了父类。

让我感到困扰的另一件事是,在promise回调中对“ this”的引用并未指向实际的对象实例。