angular - 如何避免在 TypeScript、Angular2 的派生类中重复基类构造函数参数?

标签 angular typescript

@Injectable()
export class APIService {
  constructor(private http: Http) {
  }

}


@Injectable()
export class CourseAPIService extends APIService{

  constructor(private http2: Http){
    super(http2);
  }
}

不幸的是,我将基类作为 APIService,并将 Http 作为构造函数参数,我必须在子类 CourseAPIService 中再次传递它。 如果有任何解决方案,请帮助我......?

最佳答案

如果您没有在 CourseAPIService 中使用 private http2 属性,则可以从 CourseAPIService 中完全删除构造函数。

如果你想在CourseAPIService中使用Http服务,你可以将http属性标记为protectedAPIService 中并与 CourseAPIService 共享。

@Injectable()
export class APIService {
  constructor(protected http: Http) {
  }
}

但是,如果您为 CourseAPIService 定义构造函数,则必须使用 super 调用其基类构造函数并传递必要的参数。

关于angular - 如何避免在 TypeScript、Angular2 的派生类中重复基类构造函数参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43434471/

相关文章:

angular - 类型 '{Property : string, Property2: string} 不可分配给类型 Observable<Filters[]>

typescript - TypeScript 中的 Record 中只有多个可能键中的一个键

angular - 将 '[object Object]' 转换为日期 Angular 4

javascript - 有没有办法使用 Jest toHaveBeenCalledWith 来检查参数数组长度?

angular - NgxCharts 根据数据变化调整大小

Angular:debugElement 查询找不到元素,但 jQuery 找到了

angular - 如何在 Angular 模板中使用 Math.min() 或 Math.max() 语法?

javascript - 如何在输入字段模型属性的 Angular 中制作 getter 和 setter?

javascript - 使用 ES6 的属性简写通过 typescript 传递对象并避免在参数前面加上接口(interface)名称的简化方法?

javascript - 在 React 中导航到 map 内的上一项