javascript - 如何在打字稿中构建具有双向对等依赖关系的库?
问题描述
我有两个库,一个发出请求,另一个进行日志记录。这两个库都需要来自客户端的配置,客户端将始终使用它们。
请求库始终调用日志库,并将其列为对等依赖项。
日志库有一个函数调用请求库中的方法来输出日志。该方法没有日志调用以避免无限循环。日志库也将请求库列为对等依赖项。
当我尝试tsc
在请求库中运行时,它抱怨它无法自行导入。导入日志库时,日志库尝试导入请求库,但找不到。显然我不想发布请求库的每个版本,其中嵌套了之前的版本,所以安装旧版本是行不通的。
我尝试使用 typescript's 在日志库中动态加载请求库await import()
,但显然仍试图打开导致错误的请求库。
实现这种双向库关系的最佳方法是什么?
解决方案
打字稿中的双向对等依赖关系?
你没有。不在 JavaScript 中,不在 TypeScript 中。循环依赖并不好。
使固定
在第三个库中隔离循环。
前:
A -> <- B
后:
A -> Common
B -> Common
如果你想不到Common
,那么A & B
真的应该是 1(而不是 2)
推荐阅读
- angular - Angular 8 Jasmine 不匹配 HTTP 请求
- api-platform.com - API 平台 - 我应该使用哪种方法来创建没有实体的自定义操作
- apache-spark - 如何以编程方式为 spark 中的所有字段生成 Struct Type 作为 StringType?
- android - 为什么 notifyDataSetChanged 会炸毁 ViewPager2 中的 PagerTransformer?
- sql - SQL 在发货和退货日期之间按订单 ID 和产品代码创建表 wkly 收入
- gradle - 使用 Gradle 5.X 在 Azure DevOps 上生成代码覆盖率报告
- java - 反句去重
- windows - 如果正在编辑绘图草图,如何获取?(Autodesk Inventor C++ API)
- swiftui - 在 SwiftUI 的上下文中,Single Source of Truth (SSOT) 的含义是什么?
- css - Tinymce Angular7:不通过 content_css 属性加载自定义 css 文件