Typescript 索引[1]处的模块类型为;“未定义”;。检查导入语句和模块的类型
我在NestJs中遇到了循环依赖的问题。错误:Typescript 索引[1]处的模块类型为;“未定义”;。检查导入语句和模块的类型,typescript,graphql,nestjs,circular-dependency,Typescript,Graphql,Nestjs,Circular Dependency,我在NestJs中遇到了循环依赖的问题。错误: Scope [AppModule -> PlanModule -> TaskModule] +17ms Error: Nest cannot create the UserModule instance. The module at index [1] of the UserModule "imports" array is undefined. 我尝试的是: 在construcor中的用户和任务文件中使用解析器
Scope [AppModule -> PlanModule -> TaskModule] +17ms
Error: Nest cannot create the UserModule instance.
The module at index [1] of the UserModule "imports" array is undefined.
我尝试的是:
- 在construcor中的用户和任务文件中使用解析器文件中的forwardRef:
- 实现OnModuleInit接口:
- 使用不带index.ts文件的导入:
@Module({
providers: [UserService, UserResolver],
exports: [UserService],
imports: [JournalModule, PlanModule, TaskModule],
})
export class UserModule {}
@Module({
providers: [TaskService, TaskResolver],
exports: [TaskService],
imports: [UserModule],
})
export class TaskModule {}
@Module({
providers: [PlanService, PlanResolver, GoalResolver],
imports: [TaskModule, ProgramModule],
exports: [PlanService],
})
export class PlanModule {}
任务模块
@Module({
providers: [UserService, UserResolver],
exports: [UserService],
imports: [JournalModule, PlanModule, TaskModule],
})
export class UserModule {}
@Module({
providers: [TaskService, TaskResolver],
exports: [TaskService],
imports: [UserModule],
})
export class TaskModule {}
@Module({
providers: [PlanService, PlanResolver, GoalResolver],
imports: [TaskModule, ProgramModule],
exports: [PlanService],
})
export class PlanModule {}
计划模块
@Module({
providers: [UserService, UserResolver],
exports: [UserService],
imports: [JournalModule, PlanModule, TaskModule],
})
export class UserModule {}
@Module({
providers: [TaskService, TaskResolver],
exports: [TaskService],
imports: [UserModule],
})
export class TaskModule {}
@Module({
providers: [PlanService, PlanResolver, GoalResolver],
imports: [TaskModule, ProgramModule],
exports: [PlanService],
})
export class PlanModule {}
您的
UserModule
导入TaskModule
,而TaskModule
导入UserModule
,因此您需要为这些模块导入以及服务注入设置正向引用。它看起来是这样的:
user.module.ts
@模块({
提供者:[UserService,UserResolver],
导出:[UserService],
导入:[日志模块、计划模块、forwardref(()=>TaskModule)],
})
导出类UserModule{}
任务模块.ts
@模块({
提供程序:[TaskService,TaskResolver],
导出:[任务服务],
导入:[forwardRef(()=>UserModule)],
})
导出类TaskModule{}
您的用户模块
导入任务模块
,而任务模块
导入用户模块
,因此您需要为这些模块导入以及服务注入设置正向引用。它看起来是这样的:
user.module.ts
@模块({
提供者:[UserService,UserResolver],
导出:[UserService],
导入:[日志模块、计划模块、forwardref(()=>TaskModule)],
})
导出类UserModule{}
任务模块.ts
@模块({
提供程序:[TaskService,TaskResolver],
导出:[任务服务],
导入:[forwardRef(()=>UserModule)],
})
导出类TaskModule{}