覆盖子类中的Class属性

时间:2016-07-23 06:42:25

标签: javascript class inheritance typescript

我确实有以下2个基本条款:

class BaseHelper {}

class BaseService{
  private model:BaseHelper;
}

现在我想为特定用例实现BaseHelper和BaseService,并为我的属性分配一个实例。

class MyHelper extends BaseHelper{}

class MyService extends BaseService {
  private model = new MyHelper();  
}

我尝试以各种方式,但总是得到编译错误。这有可能吗?如果是这样,那么正确的语法是什么?

1 个答案:

答案 0 :(得分:1)

以下是一些可能有用的修补程序。首先,将基本服务中的model访问者更改为protected。这将允许派生类使用此类成员:

class BaseService{
  protected model: BaseHelper;
}

然后,不使用派生类中的重新声明字段,而是使用基类中的字段:

class MyService extends BaseService {
  model = new MyHelper();  // Here you are using model from base class
}