Angular 循环依赖项(仅文件名)

Angular 循环依赖项(仅文件名),angular,typescript,circular-dependency,Angular,Typescript,Circular Dependency,以前,我对接口和服务有单独的文件,但我将它们合并到同一个文件中,因为我总是将它们请求在一起。i、 e.user.interface.ts+user.service.ts=>user.service.ts-其中声明了用户界面和服务。这使得开发速度大大加快,不必打开/需要这么多文件 我遇到的一个问题是,在从文件导入接口时(这会创建一个文件循环),我会收到一个循环依赖项警告。我想这没有什么问题,只是一个愚蠢的警告?如果是,有没有一种方法可以过滤掉这些警告而不过滤掉循环服务 文件示例 服务A impor

以前,我对接口和服务有单独的文件,但我将它们合并到同一个文件中,因为我总是将它们请求在一起。i、 e.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 {}
服务C

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 {

如果我正确理解了您的示例,
ServiceB
依赖于
serviceC。service
仅适用于其接口
C1
C2

为什么不将
C1
C2
移动到一个单独的文件中

那样

C -> D -> A -> B -> interfaces

…您的循环已中断。

共享该文件。您的导入中确实存在循环依赖关系。D导入A,导入B,导入C,导入D,然后再次导入A,依此类推。换句话说,您的服务导入服务a正在创建一个循环依赖项。
a->B->C->D->a
一个完美的循环!您应该重新思考您的体系结构,以打破这种循环依赖。如果
A
通过
B
C
隐式导入
D
。然后
A
拥有一切。无需使
D
依赖于
A
。这是一条完美的单行道。不要回头。我知道我可以将接口移动到另一个文件,这将打破循环,我只是不希望这样,以保持结构的一致性。这个应用程序构建得很好,我认为如果有服务圈的话就不会了。所以我真正想知道的是,这是否有实际问题,或者它只是被Angle用来识别可能的圆依赖关系的简单算法所捕获。@d9nny IMHO最好不要将接口与实现混合使用。但是,也许查看实际代码会使您的选择更容易理解。