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

Angular 15 + Jest 28.1.3测试报错:Cannot find name 'global'

成因分析:Jest + Angular 15 中 global 未找到的 TS2304 错误
  • TypeScript 类型定义未正确引入
    Jest 运行在 Node.js 环境中,global 是 Node.js 的全局对象,但 Angular 15 项目的测试配置(tsconfig.spec.json)默认可能没有包含 Node.js 的类型定义。TypeScript 无法识别 global 的类型,因此抛出找不到名称的错误。

  • Angular 测试环境的 TS 配置目标问题
    Angular 项目默认的 TypeScript 目标是浏览器环境,tsconfig.spec.json 里的 types 数组可能只包含 jest、jasmine 这类测试框架类型,没有添加 node 类型。缺少 Node.js 类型定义的情况下,TypeScript 不知道 global 这个全局变量。

  • Jest 28 的版本特性变化
    Jest 28 开始对全局对象的处理有调整,不再像旧版本那样自动在测试环境中注入 global 的类型声明。如果你的测试代码直接使用 global,而没有手动配置类型支持,就会触发这个错误。

  • 混淆了不同环境的全局对象
    浏览器环境的全局对象是 window,而 Jest 基于 Node.js 运行,全局对象是 global。Angular 项目平时开发聚焦浏览器环境,TypeScript 默认不会主动识别 Node.js 特有的 global 对象,导致类型检查失败。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.03 20:55:29