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

执行npx expo install命令触发TypeScript错误求助

解决Expo React Native项目中TypeScript全局类型冲突问题

问题根源

你遇到的TS错误是因为**@types/node与react-native的全局类型声明重复**(比如Blob、AbortController这类全局对象,React Native已经自带了对应的类型定义,额外安装@types/node会导致类型冲突)。同时gts的默认tsconfig未针对React Native场景做适配。

解决方案

1. 移除不必要的@types/node依赖

React Native项目无需单独安装@types/node,RN自身的类型声明已经覆盖了所需的全局对象,执行命令卸载:

npm uninstall @types/node

2. 调整tsconfig.json配置

修改配置以适配React Native的TypeScript环境:

{
  "extends": "./node_modules/gts/tsconfig-google.json",
  "compilerOptions": {
    "jsx": "react-native", // 替换原"react",适配RN的JSX转换规则
    "rootDir": ".",
    "outDir": "build",
    "esModuleInterop": true,
    "types": ["react-native"], // 明确指定仅使用react-native的类型,避免自动引入冲突类型
    "skipLibCheck": true // 可选:跳过第三方库的类型检查,快速规避非核心类型冲突
  },
  "include": [
    "src/**/*.ts",
    "test/**/*.ts",
    "src/**/*.tsx"
  ],
  "exclude": [
    "node_modules" // 排除node_modules目录,避免解析第三方类型冲突
  ]
}

3. 清理并重新安装依赖

删除现有依赖和缓存,使用Expo官方命令重新安装:

# 删除依赖目录和锁文件
rm -rf node_modules package-lock.json
# 重新安装指定依赖
npx expo install react-native-screens react-native-safe-area-context

4. 验证修复

执行TypeScript编译命令检查错误是否消除:

npm run compile

额外说明

  • Expo托管项目必须使用npx expo install安装依赖,它会自动匹配当前SDK版本的兼容依赖,避免版本不兼容问题,不要用npm install绕过。
  • 若项目中有Node.js工具脚本需要@types/node,可单独在脚本目录创建独立的tsconfig文件,或通过typeRoots配置区分,避免影响RN主项目的类型环境。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.02 20:27:43