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

React/TypeScript报错:类型Window & typeof globalThis上不存在属性_env_

问题原因

这个报错是TypeScript的全局类型校验导致的,默认的Window类型定义中没有你新增的_env_属性,TS无法识别该自定义字段,因此抛出类型错误。

解决方案

方案1:扩展Window全局类型(推荐,可保留完整类型校验)

  • 在项目src目录下创建类型声明文件,命名为env.d.ts(如果是Create React App项目,也可以直接在已有的react-app-env.d.ts中追加内容)
  • 在文件中写入以下代码:
declare global {
  interface Window {
    _env_: {
      API_URL: string;
      // 其他存放在`_env_`中的自定义环境变量可在此处逐一声明类型
      // 如果环境变量数量不固定,可以添加索引签名兼容所有字符串类型的字段:
      [key: string]: string;
    }
  }
}

// 必须导出空对象,让TS将该文件识别为模块,才能正常扩展全局类型
export {};
  • 检查项目根目录的tsconfig.json,确保include配置项包含了该声明文件所在的目录,示例配置如下:
{
  "include": ["src"]
}

配置完成后重启TS服务,报错就会消失,后续使用window._env_时还会有对应的类型提示。

方案2:临时类型断言(仅适合快速测试用)

如果只是临时调试不想加类型定义,可以用类型断言跳过校验,写法如下:

<p>API_URL: {(window as any)._env_.API_URL}</p>

注意:该方案会丢失_env_字段的类型校验,不推荐在生产环境长期使用

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 16:27:04