【发布时间】:2019-10-03 12:35:45
【问题描述】:
以前,我有用于接口和服务的单独文件,但我将它们合并到同一个文件中,因为我总是一起请求它们。即 user.interface.ts + user.service.ts => user.service.ts - 声明用户界面和服务的地方。它使开发速度更快,无需打开/需要这么多文件。
我遇到的一个问题是,从文件中导入接口时会收到循环依赖警告(这会创建文件循环)。我假设这没有问题,这只是一个愚蠢的警告?如果是这样,有没有办法在不过滤掉循环服务的情况下过滤掉这些警告?
文件示例
服务A
import { ServiceB } from '../serviceB.service';
@Injectable()
export class ServiceA {}
服务 B
import { C1, C2 } from '../serviceC.service';
@Injectable()
export class ServiceB {}
服务中心
import { ServiceD } from '../serviceD.service';
export interface C1 {}
export interface C2 {}
@Injectable()
export class ServiceC {}
服务D
import { ServiceA } from '../serviceA.service';
@Injectable()
export class ServiceD {
【问题讨论】:
-
分享文件。
-
您的导入中确实存在循环依赖。 D 进口 A 进口 B 进口 C 进口 D 然后再次进口 A 等等。换句话说,您的 ServiceD 导入 ServiceA 正在创建循环依赖。
-
A -> B -> C -> D -> A一个完美的圆圈!你应该重新考虑你的架构来打破这种循环依赖。如果A是通过B和C隐式导入D。然后A拥有一切。无需使D依赖于A。这是一条完美的单向街道。不要回头。
标签: angular typescript circular-dependency