Angular Is`providers:[MyService]`与`providers:[{provide:MyComponent,useClass:MyComponent}]相同`

Angular Is`providers:[MyService]`与`providers:[{provide:MyComponent,useClass:MyComponent}]相同`,angular,angular2-injection,Angular,Angular2 Injection,我正在读ng关于angular 2修订版47第250页的书,有以下段落: 当我们将类本身放入提供者列表时,如下所示: providers: [ MyService ] providers: [Logger] 这告诉Angular,无论何时启动MyService,我们都希望提供一个MyService的单例实例 注射。因为这种模式非常常见,所以类本身是 以下等效配置的简写符号: providers: [ { provide: MyComponent, useClass: MyCompo

我正在读ng关于angular 2修订版47第250页的书,有以下段落:

当我们将类本身放入提供者列表时,如下所示:

providers: [ MyService ] 
providers: [Logger]
这告诉Angular,无论何时启动MyService,我们都希望提供一个MyService的单例实例 注射。因为这种模式非常常见,所以类本身是 以下等效配置的简写符号:

providers: [
    { provide: MyComponent, useClass: MyComponent }
]
这是打字错误吗?其含义应该是:

providers: [
    { provide: MyService, useClass: MyService }
]
是的,是一样的。 当传递给Provider和useClass的类型相同时,则等同于只传递该类型


只是一个提示。提供组件MyComponent通常没有意义

这是打字错误,因为您不能将组件用作提供者,下面是

我们编写了Provider类和provide object literal 像这样的数组:

providers: [ MyService ] 
providers: [Logger]
这实际上是一个速记表达 对于使用具有两个参数的提供程序对象文字的提供程序注册 特性:

[{ provide: Logger, useClass: Logger }]
第一个是 用作查找依赖项值和注册的键 提供者

第二个是提供者定义对象,我们可以将其视为 创建依赖项值的方法。有很多方法可以解决这个问题 创建依赖项值。。。还有很多写食谱的方法


很可能是打字错误?好吧,现在我明白你的意思了。是的,我确定MyComponent而不是MyService是一个打字错误。好的,谢谢,只是想确保我没有遗漏其他东西