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

如何配置tsconfig.json使Node.js服务端代码禁用window/document?

解决Node.js环境下TypeScript仍提示window/document的问题

可以通过tsconfig.json的配置完全屏蔽浏览器全局对象的提示,让代码中使用window或document时直接抛出类型错误,具体操作如下:

  • 指定仅加载Node.js相关标准库
    TypeScript默认会包含浏览器环境的dom库,这是window/document提示的根源。在compilerOptions中通过lib字段明确只引入Node.js对应的库:

    {
      "compilerOptions": {
        "lib": ["ESNext", "Node"], // 替换为你项目实际需要的ES版本+Node库
        // 其他已有配置...
      }
    }
    

    该配置会移除dom库带来的浏览器全局类型,一旦代码中使用window或document,编译器会直接抛出“找不到名称”的错误。

  • 限制仅加载Node.js类型定义
    如果第三方依赖意外引入了浏览器类型,可通过types字段强制TypeScript只加载Node.js的类型包:

    {
      "compilerOptions": {
        "types": ["node"], // 仅加载@types/node提供的类型定义
        // 其他已有配置...
      }
    }
    

    此设置会关闭TypeScript自动引入默认类型的行为,仅加载你指定的node类型。

  • 对齐Node.js环境的基础配置
    配合以下配置让编译器完全适配Node.js环境,避免环境混淆:

    {
      "compilerOptions": {
        "target": "ES2022", // 匹配你的Node.js支持的ES版本
        "module": "CommonJS",
        "moduleResolution": "node",
        // 其他配置...
      }
    }
    

如果需要针对单个文件临时屏蔽浏览器类型,可在文件顶部添加以下指令:

/// <reference no-default-lib="true"/>
/// <reference lib="esnext" />
/// <reference lib="node" />

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.24 06:34:54