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

Angular14升级至18后出现NG0203错误,未用inject()却报错求助

解决Angular 18升级后的NG0203错误

核心原因

Angular 18对注入上下文的校验比16版本更严格,即使你没直接调用inject(),以下场景也可能触发NG0203错误:

  • 第三方依赖库内部隐式调用inject(),但未适配Angular 18的注入上下文规则
  • @Inject()装饰的类被手动实例化(而非由Angular注入器管理)
  • main.ts第69行的代码在注入上下文未就绪时,触发了依赖注入相关逻辑

排查与解决步骤

  • 定位main.ts第69行的问题:查看该行代码,确认是否在bootstrapApplication/platformBrowserDynamic().bootstrapModule之前就初始化了需要依赖注入的服务或组件。如果是,将该逻辑移到启动方法的回调、APP_INITIALIZER工厂函数或注入器就绪后的执行阶段。
  • 升级第三方依赖:将所有依赖库(尤其是UI组件、状态管理、工具类库)升级到支持Angular 18的最新版本,旧版本库可能存在不符合新注入规则的隐式调用。
  • 检查@Inject()的使用合规性:确保所有使用@Inject()的类都是通过Angular注入器获取实例(如构造函数注入、注入器获取),而非手动new实例。手动实例化会导致Angular无法注入依赖,进而触发内部的inject()调用报错。
  • 追踪调用栈定位根源:在浏览器开发者工具中查看错误的完整调用栈,找到真正触发inject()调用的代码位置(可能是某个依赖库或Angular内部API),针对性修复或替换该依赖。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.14 08:18:13