You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

配置Angular Core Module时DummyService注入报错如何解决?

错误原因

  1. 直接触发报错的核心原因:app.component.ts 文件中未导入 DummyService 类型,TypeScript 无法识别该类型定义,Angular 依赖注入框架也找不到对应的注入令牌,因此抛出无法解析类型的错误。
  2. 潜在优化点:DummyService 同时配置了两种注册逻辑,既有 @Injectable({ providedIn: 'root' }) 声明,又在 CoreModule 的 providers 数组中重复添加,虽然不会触发本次报错,但如果后续 CoreModule 被其他懒加载模块重复引入,会导致服务生成多个实例,不符合 Core 模块全局单实例服务的设计初衷。

解决方法

  • 第一步:修复导入缺失,在 app.component.ts 头部添加导入语句:
import { DummyService } from './core/dummy.service';
  • 第二步(可选优化,根据项目规范二选一即可):
    • 选择 Angular 推荐的树摇友好的注册方式:删除 CoreModule 中 providers 数组里的 DummyService 声明,保留 @Injectable({ providedIn: 'root' }) 即可,这种方式支持未使用的服务在编译时自动摇掉,减少包体积。
    • 选择 Core 模块统一管控服务的注册方式:删除 DummyService 中 @Injectable 配置的 providedIn: 'root' 字段,仅保留 CoreModule 的 providers 数组声明即可,这种方式建议额外给 CoreModule 添加防止重复导入的守卫逻辑,避免被非根模块多次导入生成多实例。

内容的提问来源于stack exchange,提问作者Raj

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.25 09:36:03