【发布时间】:2020-06-21 07:04:42
【问题描述】:
我没有找到一个很好的例子来处理这个问题,在继承时,一些构造函数参数应该定义并由子类传递,其余的应该注入。
export class Superclass {
static inject = [Service1, Service2];
constructor(
//parameter(s) intented to be passed by subclasses
parameterFromSubclass,
//services intented to be injected
service1, service2) {
this.service1 = service1;
this.service2 = service2;
//do stuff based on parameterFromSubclass
}
}
为了使其更复杂,子类可能还需要注入自己的服务。
export class Subclass extends Superclass {
static inject = [Service3];
constructor(service3) {
const param = 'parameter from subclass'; //could be anything
super(param, ...?);
this.service3 = service3;
}
}
【问题讨论】:
标签: javascript inheritance ecmascript-6 dependency-injection aurelia