从基类开始的Typescript调用函数

时间:2013-06-21 09:45:45

标签: javascript typescript

有没有办法从baseclass调用一个函数,比如overwrite。

基类

export class BaseClass {
   constructor() {
   //do something asynchronous
   //than call initialized
   }
}

继承类

export class InheritanceClass extends BaseClass {
   initialized() {
   // get called from base class
   }
}

2 个答案:

答案 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目前不支持此功能但是已经要求该功能,并且有一个工作项为它打开:

http://typescript.codeplex.com/workitem/395