Nest无法解析CostsController依赖问题求助
Nest依赖注入错误:无法解析CostsController的依赖
问题原因
你在CostsController里用了类型导入(import type)引入CostsService:
import type { CostsService } from './costs.service';
TypeScript的类型导入会在编译阶段被完全移除,导致Nest的依赖注入系统无法识别到CostsService这个实际的类,只能看到空占位符,所以报错提示参数为Function,无法解析依赖。
解决方法
把CostsController中的类型导入改成普通导入,移除type关键字:
修改src/costs/costs.controller.ts的导入语句:
// 移除type关键字,改成普通导入 import { CostsService } from './costs.service';
验证修改
改完之后,Nest就能正确识别CostsService类,依赖注入系统会从CostsModule的providers里找到对应的服务,错误即可消除。
补充说明
Nest的依赖注入是基于类的引用实现的,必须确保注入的类在编译后仍然保留实际的引用,不能仅作为类型存在。类型导入只能用于类型注解场景,不能用于依赖注入的类引用。
内容的提问来源于stack exchange,提问作者sleighty
相关产品推荐
相关产品推荐

