@Injectable()
export class APIService {
constructor(private http: Http) {
}
}
@Injectable()
export class CourseAPIService extends APIService{
constructor(private http2: Http){
super(http2);
}
}
我有基类作为APIService有Http作为构造函数参数,遗憾的是我必须在子类CourseAPIService中再次传递它。 如果有任何问题,请帮助我......?
答案 0 :(得分:2)
如果您未使用CourseAPIService
中的private http2
属性,则可以从CourseAPIService
完全删除构造函数。
如果您确实想要使用Http
中的CourseAPIService
服务,可以在http
中将protected
属性标记为APIService
并与{分享CourseAPIService
{1}}。
@Injectable()
export class APIService {
constructor(protected http: Http) {
}
}
但是,如果为CourseAPIService
定义构造函数,则必须使用super
调用其基类构造函数来传递必要的参数。
答案 1 :(得分:0)
AFAIK,答案是否。你需要从派生类调用super()。因此,如果您的基类具有依赖项,则派生类必须注入相同的依赖项并传递给super()方法。