我可以从Typescript的父类的构造函数中触发子类的成员函数吗?

时间:2019-03-09 18:18:51

标签: typescript class inheritance coffeescript super

class Person {
    contructor() {
        this.someSubclassMember();
    }
}

class Student {
    contructor() {
        super();
        this.someSubclassMember.bind(this); 
    }

    someSubclassMember() {

    }
}

我知道我可以为somSubclassMember定义保护,但是我想遍历父类的子类原型吗?

这可行吗? 谢谢

PS:我在coffeescript中看到了它的可行性。这是coffeescript的编译代码

  module.exports = ProviderOS = (function(superClass) {
    extend(ProviderOS, superClass);

    function ProviderOS() {
      this.doInternalGetJobCollection = bind(this.doInternalGetJobCollection, this);
      this.doCreateJob = bind(this.doCreateJob, this);
      this.doCreateOnetimeJob = bind(this.doCreateOnetimeJob, this);
      this.doCreateHourlyJob = bind(this.doCreateHourlyJob, this);
      this.doCreateDailyJob = bind(this.doCreateDailyJob, this);
      this.doExecuteJob = bind(this.doExecuteJob, this);
      this.doGetServerInformation = bind(this.doGetServerInformation, this);
      this.getBaseName = bind(this.getBaseName, this);
      this.onInit = bind(this.onInit, this);
      return ProviderOS.__super__.constructor.apply(this, arguments);
    }

在这种情况下,我可以从超类访问子类成员。 但是打字稿需要先访问super。

1 个答案:

答案 0 :(得分:0)

我自己解决了。 超类具有一个称为(init)的成员函数,子类将其覆盖。在这种情况下,超类的init()是调用子类的init。 从子类中,我可以将其用作子类的构造函数。