首页 > 解决方案 > 在类构造函数中注入服务的长形式

问题描述

constructor(private myService: MyService) {
}

在类构造函数中注入服务的长形式是什么?我想把上面的东西改成这样的:

private myService;
constructor() {
    this.myService = new MyService();
}

但现在它尖叫 MyService 需要两个参数(长格式)

为什么简短的形式在没有明确给出参数的情况下工作?

标签: angularserviceconstructor

解决方案


两种方式都是一样的,只是您将分配部分委托给系统,并且您可以根据需要使用它。

假设您的服务具有依赖关系,那么您将需要,

const dep1 = new Dep1();
const subDep = new SubDep();
const dep2 = new Dep2(subDep);
this.myService = new MyService(dep1, dep2)

使用第一种方法总是更好,因为系统会自动完成


推荐阅读