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

@types/node v16报NodeJS无Global导出错误 新版本如何声明全局变量

Node 16及以上版本TypeScript全局变量声明方案

报错根因

@types/node 从v16版本开始移除了原有 NodeJS.Global 接口,全局变量声明改为遵循ECMAScript标准的globalThis扩展方案,因此原有基于NodeJS.Global的扩展写法会抛出类型错误。

正确实现方式

  1. 新建全局类型声明文件,通常命名为 global.d.ts,放在项目根目录或src目录下,确保该文件在tsconfig.json的include配置覆盖范围内。
  2. 按如下格式编写声明内容:
declare global {
  // 此处替换为你需要定义的全局变量名和对应类型
  var myGlobalVariable: unknown
}

// 此行必须保留,将文件标记为模块,才能让全局类型声明生效
export {}

注意事项

  • 全局变量必须使用var关键字声明,使用let、const声明的变量不会挂载到globalThis上,类型声明无法全局生效
  • 赋值时可直接使用globalThis或Node专属的global别名操作变量,不需要额外类型断言:
// 两种赋值方式都兼容
globalThis.myGlobalVariable = '自定义全局值'
global.myGlobalVariable = '自定义全局值'

内容的提问来源于stack exchange,提问作者Anthony Luzquiños

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.13 03:06:02