有没有办法像覆盖一样从基类调用函数。
基类
export class BaseClass {
constructor() {
//do something asynchronous
//than call initialized
}
}
继承类
export class InheritanceClass extends BaseClass {
initialized() {
// get called from base class
}
}
有没有办法像覆盖一样从基类调用函数。
基类
export class BaseClass {
constructor() {
//do something asynchronous
//than call initialized
}
}
继承类
export class InheritanceClass extends BaseClass {
initialized() {
// get called from base class
}
}
你的意思是这样的:
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(),我认为这是一个错误 - 它编译并运行良好。)
您确实需要存在 on 的方法Base,但您可以在其中覆盖它Derived(使用 or,在这种情况下,无需调用super.initialized())。
为此,您需要将其初始化为抽象类的抽象成员。打字稿目前不支持此功能,但已要求该功能,并且有一个工作项为它打开: