angular - Angular 依赖注入机制是如何工作的?
问题描述
我试图了解 Angular/NestJs 依赖注入背后的机制。
构建 Typescript 类时,其参数的类型会丢失。例子:
type Dependency1 = {};
type Dependency2 = {};
class X {
constructor(dependency: Dependency1){}
}
变得
"use strict";
class X {
constructor(dependency) { }
}
Angular Injector 如何将dependency
参数替换为 Dependency 类的正确实例?
解决方案
如果 Angular 类似于 Nest 的 DI 分辨率(应该类似,Nest 是受 Angular 启发的),那么函数名(即类名)将使用什么。由于类是 JavaScript 中的函数,并且所有函数都有一个.name
属性,这就是用于获取注入令牌并针对相同令牌(相同类或自定义提供程序)检查模块容器的属性。
推荐阅读
- swift - Apple 是否有办法将一个视图的外观(即您在屏幕上实际看到的内容)复制到图像缓冲区中?
- c# - 使用 SharpSerializer 反序列化 Arraylist 的 Arraylist
- applescript - applescript中的文本格式问题
- html - HTML/CSS 将 2 个元素与 1 个元素对齐,例如 2 个输入与一个标签
- arrays - VBA 匹配 0 与接近于零的科学计数法
- javascript - 如何将变量用作对象内的索引?(Javascript)
- java - ContextThemeWrapper 更改 android 中的样式
- snowflake-cloud-data-platform - 从雪花的另一个表中添加列
- html - 如何链接到谷歌照片中的图像但下载文件而不是打开它
- python - Python [Errno 8] 执行格式错误:'/app/.venv/bin/python'