我有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不够聪明,无法深入了解?