Могу ли я вызвать функцию-член подкласса из конструктора родительского класса в Typescript? - PullRequest
0 голосов
/ 09 марта 2019
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);
    }

В этом случае я могу получить доступ к члену подкласса из суперкласса. Но машинопись должна вызвать супер, прежде чем получить доступ к этому.

1 Ответ

0 голосов
/ 13 марта 2019

Я решил это сам. Суперкласс имеет функцию-член (init) и подкласс переопределяет ее. В этом случае суперкласс do init () должен вызвать init подкласса. Из подкласса я могу использовать его как конструктор подкласса.

...