我正在尝试了解 Angular/NestJs 依赖注入背后的机制。
构建 Typescript 类时,其参数的类型丢失。例子:
type Dependency1 = {};
type Dependency2 = {};
class X {
constructor(dependency: Dependency1){}
}
成为
"use strict";
class X {
constructor(dependency) { }
}
Angular Injector 如何用 Dependency 类的正确实例替换 dependency
参数?
答案 0 :(得分:1)
如果 angular 类似于 Nest 的 DI 分辨率(它应该是类似的,Nest 的灵感来自 Angular),那么如果函数的名称(即类的名称)使用的是什么。由于类是 JavaScript 中的函数,并且所有函数都有一个 .name
属性,这就是用于获取注入令牌并针对相同令牌(相同类或自定义提供程序)检查模块容器的内容。>