【发布时间】:2021-07-02 10:21:42
【问题描述】:
我正在尝试了解 Angular/NestJs 依赖注入背后的机制。
当一个 Typescript 类被构建时,它的参数类型会丢失。示例:
type Dependency1 = {};
type Dependency2 = {};
class X {
constructor(dependency: Dependency1){}
}
成为
"use strict";
class X {
constructor(dependency) { }
}
Angular Injector 如何将 dependency 参数替换为 Dependency 类的正确实例?
【问题讨论】:
-
角度编译器读取此类型并将注入令牌添加到类元数据中,然后从适当的注入器请求此令牌以获取该令牌提供的实例。
-
@Andrei 这意味着角度编译器将我的组件作为字符串读取(在将其转换为 js 文件之前),并为我的组件的每个参数在我的组件类中的元数据类中添加一个注入令牌构造函数。
标签: angular typescript dependency-injection nestjs