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

JS项目中如何禁用React及DOM的全局类型定义?

如何阻止TypeScript在JS项目中自动引入React及DOM全局类型

核心解决方案:通过tsconfig.json限制全局类型加载

在启用checkJs的JS项目中,TypeScript默认会自动加载@types目录下的全局类型定义(比如@types/react、@types/dom里的Event),可以通过以下配置彻底解决:

1. 完全禁用自动全局类型引入

修改tsconfig.json的compilerOptions,添加types: [],这样TypeScript只会加载你明确指定的类型,不会自动引入任何第三方全局类型:

{
  "compilerOptions": {
    "checkJs": true,
    "types": []
  }
}

2. 按需保留特定全局类型

如果项目需要部分全局类型(比如Node.js的类型),可以在types数组中仅添加需要的类型包名,其他未指定的全局类型会被排除:

{
  "compilerOptions": {
    "checkJs": true,
    "types": ["node"]
  }
}

3. 单个文件局部屏蔽

如果只需要在特定JS文件中屏蔽Event这类全局变量,可以在文件顶部添加声明覆盖:

// 声明Event为未定义,让TS识别到它未被正确定义
declare let Event: undefined;

或者直接关闭该文件的类型检查(仅推荐局部场景使用):

/* @ts-nocheck */

4. 限制类型扫描目录

如果项目配置了typeRoots,确保它只指向你自定义的类型目录,避免TypeScript自动扫描node_modules/@types下的全局类型:

{
  "compilerOptions": {
    "checkJs": true,
    "typeRoots": ["./src/custom-types"]
  }
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.12 13:45:30