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

React Apollo项目引入MockedProvider测试时报graphql.isType不是函数错误

解决方案

报错根因

TypeError: graphql.isType is not a function 报错的核心原因是项目中graphql包的版本与@apollo/client依赖要求的版本不兼容:isType是graphql v15.0.0及以上版本才提供的内置方法,当项目本地安装的graphql版本低于该要求、或者存在多个graphql版本共存时,就会触发该导入错误。

修复步骤

  • 第一步:清理本地冗余依赖与锁文件
rm -rf node_modules package-lock.json yarn.lock pnpm-lock.yaml
  • 第二步:安装兼容版本的graphql包,优先选择和当前Apollo Client适配性最好的v16稳定版:
# npm
npm install graphql@16 --save-dev
# yarn
yarn add graphql@16 --dev
# pnpm
pnpm add graphql@16 --save-dev
  • 第三步:校验是否存在多版本graphql共存,执行对应包管理工具的查询命令:
# npm
npm ls graphql
# yarn
yarn list graphql
# pnpm
pnpm ls graphql

如果查询结果显示有多个不同版本的graphql被安装,在package.json中添加版本锁定配置即可:

// npm 用户添加 overrides 字段
{
  "overrides": {
    "graphql": "16.8.1"
  }
}

// yarn/pnpm 用户添加 resolutions 字段
{
  "resolutions": {
    "graphql": "16.8.1"
  }
}

配置完成后重新执行依赖安装命令,再运行测试即可正常导入MockedProvider。

额外排查点

如果完成上述操作后仍然报错,检查jest配置文件中是否存在moduleNameMapper规则错误将graphql映射到了其他路径,或者配置了打包排除规则忽略了graphql依赖,删除对应异常配置即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 07:42:02