我创建了这样一个类
@Injectable FooService {
constructor(private _bar:BarService){
}
}并像这样扩展了它
@Injectable ExtFooService extends FooService {
constructor(private _bar:BarService){
super(_bar);
}
}通过这种方式,我得到了以下错误:
错误:(12,14) 14 2415:类'ExtFooService‘错误地扩展了基类'FooService’。类型具有私有属性'_bar‘的单独声明。
为什么是这样?
我尝试从ExtFooService中删除注入,但我在super()行得到了这样的结果:
错误:(21,9) 21 2554:预期的2个参数,但得到0。
我真的有必要这么做吗?
@Injectable ExtFooService extends FooService {
constructor(private _extBar:BarService){
super(_extBar);
}
}发布于 2018-03-16 10:05:40
您应该从派生类中的参数private中删除_bar。private用于声明与构造函数参数同名的字段,并使用参数的值初始化字段。由于基类已经声明了字段,因此没有必要在派生类中重新声明该字段:
@Injectable ExtFooService extends FooService {
constructor(_bar:BarService){
super(_bar);
}
}https://stackoverflow.com/questions/49317918
复制相似问题