错误 TS6202:项目引用可能无法形成圆形图。
我的结构: - 包 --utils --api
utils/tsconfig.json
...
references: [../api/src]
api/tsconfig.json
...
references: [../utils/src]
我需要在api包中使用utils并在utils中使用一些api
循环依赖通常是一个暗示,表明你的架构还不完善。
尝试以下一项或多项:
示例:
// in api
class A {
constructor(private u: U) {}
fancyMethod() {}
}
// in util
class U {
constructor(private a: A) {}
}
在此设置中,api 中的 A 取决于 util 中的 U,反之亦然。要解决此问题,请创建一个接口,从 U 的角度描述所需的功能并使其依赖于此:
// in api
class A implements FancyIf{
constructor(private u: U) {}
fancyMethod() {}
}
// in util
interface FancyIf {
fancyMethod(): void;
}
class U {
constructor(private a: Fancy) {}
}
这样,util就不需要依赖api,而是通过提供接口来定义它需要操作什么。然后,来自 api 的更具体的类 A 实现了该接口,以表明它可以满足 U 类的需求。
提示:还要考虑依赖注入等概念。