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

TypeScript报错Module has no exported member .ts(2305)的原因及解决方法

问题解决指南

三个具体报错的修复方案

你所有报错的根本原因首先是依赖版本与使用的API不匹配、导入写法错误,对应修复如下:

1. react-router相关两个报错

你当前安装的react-router-dom版本为v5.2.0,配套的类型声明也是v5版本,但你用的Routes、useNavigate都是react-router v6才新增的API,两个修复方案二选一:

方案1:升级到v6版本(推荐)

执行以下命令升级包和对应类型声明:

yarn add react-router-dom@6 @types/react-router-dom@6

升级后你现有的导入写法可以直接正常使用。

方案2:保留v5版本,修改为v5支持的写法

  • 把Routes替换为v5的Switch组件,导入写法改为:
import { BrowserRouter, Switch, Route } from 'react-router-dom';
  • 把useNavigate替换为v5的useHistory钩子,导入写法改为:
import { useHistory } from 'react-router';

2. react-native-vector-icons导入报错

这个库不支持解构导入根路径下的图标集,正确导入写法为:

import MaterialCommunityIcons from 'react-native-vector-icons/MaterialCommunityIcons';

同时你package.json里安装的react-vector-icons是无效冗余包,可以执行yarn remove react-vector-icons删除,避免冲突。


Module has no exported member .ts(2305) 通用排查步骤

以后遇到同类报错可以按以下顺序排查:

  • 核对API与依赖版本是否匹配:首先确认你使用的API是否属于当前安装的依赖版本,很多错误都是看了高版本的文档,但是本地装的是低版本依赖导致的,版本不匹配就升级/降级依赖到对应版本即可。
  • 核对导入写法是否正确:不是所有包都支持解构从根路径导入,部分包需要导入子路径、或者使用默认导入而非命名导入,可查对应版本的官方文档确认导入规则。
  • 核对类型声明包版本是否匹配:如果使用的是第三方JS包,安装的@types/xxx类型声明包必须和实际安装的xxx依赖大版本完全一致,否则类型声明和实际代码对不上就会报导出不存在的错误。
  • 清理缓存重试:如果上述都没问题,大概率是缓存异常导致,先删除node_modules、yarn.lock(或package-lock.json)文件,重新执行依赖安装,再重启IDE的TypeScript服务(VSCode按Ctrl+Shift+P执行「TypeScript: Restart TS Server」)即可。
  • 检查依赖冲突:确认是否安装了同名的冗余依赖,避免导入时解析到错误的包。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 00:18:02