从父类继承的接口方法出现TS2322(缺少属性)错误

时间:2018-12-12 17:15:54

标签: typescript

我有TypeScript 3界面

export interface IVideo {
    onError();
    start();
    stop();
    pause();
}

这是由几个抽象基类实现的

export abstract class BaseVideoA implements IVideo {
    public onError = ...    
    public abstract start();
    public abstract stop();
    public abstract pause();
}

最后,摘要被扩展

export class BaseVideoAComponent extends BaseVideoA {
    public start() {}    
    public stop() {}
    public pause() {}
}

当我稍后尝试将BaseVideoAComponent分配给期望IVideo的变量时,我得到

let componentType: IVideo;
...
componentType = BaseVideoAComponent;
  

类型'typeof BaseVideoAComponent'不能分配给类型'IVideo'。   类型'typeof BaseVideoAComponent'中缺少属性'onError'。

很明显,编译器选择了子类直接实现的3种接口方法,但缺少了从抽象继承的一种。我是在做错什么,还是TypeScript不够聪明,无法深入了解?

0 个答案:

没有答案