有没有办法从baseclass调用一个函数,比如overwrite。
基类
export class BaseClass {
constructor() {
//do something asynchronous
//than call initialized
}
}
继承类
export class InheritanceClass extends BaseClass {
initialized() {
// get called from base class
}
}
答案 0 :(得分:7)
你的意思是这样的:
class Base {
constructor(){
setTimeout(()=>{
this.initialized();
}, 1000);
}
initialized(){
console.log("Base initialized");
}
}
class Derived extends Base {
initialized(){
console.log("Derived initialized");
}
}
var test:Derived = new Derived(); // console logs "Derived initialized" - as expected.
在Playground中运行良好(忽略setTimeout()
上的奇怪的红色下划线,我认为这是一个错误 - 它编译并运行正常。)
您确实需要Base
上的方法,但您可以在Derived
中覆盖它(使用或,在这种情况下,无需调用super.initialized()
)。
答案 1 :(得分:2)
为了做到这一点,你需要初始化为抽象类的抽象成员。 typescript目前不支持此功能但是已经要求该功能,并且有一个工作项为它打开: