【发布时间】:2016-03-20 15:25:40
【问题描述】:
我一直在阅读关于 依赖倒置 的 Angular 2.0 docs 并且我也一直在查看一些 online examples。
我的理解是@injectable 装饰器使用带有emitDecoratorMetadata 标志的TypeScript 编译器来创建用于解决依赖关系的元数据。以下面的类为例:
TypeScript 编译器使用 emitDecoratorMetadata 通过元数据声明 DataService 类具有类型为 Http 的构造函数参数。
一旦我们使用@Injectable 声明了一个类的依赖关系,我们就可以指出它需要使用@App 或@Component 装饰器中的Provides 选项注入到某些组件中。
我知道emitDecoratorMetadata 的行为,并且我知道它不能为接口发出元数据。因此,我假设我不能依赖IHttp 而不是Http:
我的假设正确吗?我可以依靠“Depend upon Abstractions. Do not depend upon concretions.” 还是目前不可能的事情?我认为一旦emitDecoratorMetadata能够序列化接口,这个问题就会得到解决。
【问题讨论】:
标签: angular typescript angular2-di