TS2416错误:ApolloError的originalError属性与GraphQLError类型不匹配
问题原因
这是apollo-server-errors@3.2.0版本与graphql@15.x版本的类型定义不兼容导致的报错:
- apollo-server-errors 3.2.0版本将
ApolloError类的originalError属性定义为Error | null | undefined类型 - 你使用的graphql 15.x版本中,基类
GraphQLError的originalError属性仅支持Error | undefined类型,二者不匹配触发TS2416类型错误。
解决方案
应急方案(可立刻恢复项目构建)
任选一种操作即可:
- 锁定
apollo-server-errors版本为3.1.0,去掉package.json中该依赖版本号前的^符号,修改后内容如下:
"apollo-server-errors": "3.1.0",
修改完成后删除node_modules目录和package-lock.json(或yarn.lock)文件,重新执行npm install即可。
- 在tsconfig.json的
compilerOptions节点中添加skipLibCheck: true配置,跳过第三方依赖库的类型校验:
{ "compilerOptions": { "skipLibCheck": true } }
该配置仅跳过node_modules下依赖包的类型检查,不会影响项目自有代码的类型校验效果。
官方修复方案
该问题为apollo-server-errors 3.2.0的已知兼容性问题,官方已在后续3.3.0及以上的稳定版本中完成修复,你也可以直接将apollo-server-errors依赖升级到最新稳定版本解决该问题。
内容的提问来源于stack exchange,提问作者Shivam Pathak
相关产品推荐
相关产品推荐

