将通用服务注入组件的推荐方法是什么?例如,假设你已经得到了这个:
export class Service<T>{ ... }
现在,假设我们还有一个名为Person的类:
export class Person { ... }
我想把它注入一个组件中:
@Component({
selector: "frt-X",
templateUrl: "...",
providers: [Service<Person>] }) <--ERROR
export class MyComponent {
constructor(private service: Service<Person>) { }
}
我想知道是否有一种关于提供者类型的具体方法。目前,由于模板未转换为JavaScript,我只是简单地传递服务。
编辑:我试图提供有关我的方案的更多信息。
假设您有两条不同的路线,映射到两个不同的组件。让我们称它们为A和B.现在,假设这些组件中的每一个都有一个内部辅助路由器插座,用于加载不同的组件。让我们说:
A
C |插座:可以加载D或E
乙
F |出口:可以加载G或H
现在,让我们说当D或E加载Person类型的对象时需要通知A,并且当G或H加载Car类型的对象时需要通知B.为了达到这个目的,我使用了一个注入父子组件的服务(我按照官方文档中的说明进行操作)。我已经考虑过使用泛型来指定加载的对象类型。两种情况的代码都是相同的,但在一个地方,内部组件加载Person对象,而在另一个地方,内部组件加载Car对象。
当然,我可以使用对象,但由于TypeScript支持泛型,我认为我应该使用它以获得更好的智能感知和更多&#34;类型安全&#34;。
感谢。
此致 路易斯