首页 > 解决方案 > Angular 依赖注入机制是如何工作的?

问题描述

我试图了解 Angular/NestJs 依赖注入背后的机制。

构建 Typescript 类时,其参数的类型会丢失。例子:

type Dependency1 = {};
type Dependency2 = {};

class X {
    constructor(dependency: Dependency1){}
}

变得

"use strict";
class X {
    constructor(dependency) { }
}

Angular Injector 如何将dependency参数替换为 Dependency 类的正确实例?

标签: angulartypescriptdependency-injectionnestjs

解决方案


如果 Angular 类似于 Nest 的 DI 分辨率(应该类似,Nest 是受 Angular 启发的),那么函数名(即类名)将使用什么。由于类是 JavaScript 中的函数,并且所有函数都有一个.name属性,这就是用于获取注入令牌并针对相同令牌(相同类或自定义提供程序)检查模块容器的属性。


推荐阅读