apollo-angular V2与Angular V8集成兼容及编译报错问题咨询
问题原因说明
你遇到的编译报错完全来自TypeScript版本不兼容:你项目使用的TypeScript 3.5.3 不支持两个新语法特性:
export type导出类型别名语法:TS 3.8版本才正式支持asserts condition类型断言语法:TS 3.7版本才正式支持
你安装的@apollo/client ^3.4.11、apollo-angular ^2.6.0依赖的.d.ts声明文件都用到了上述新语法,所以编译直接抛出错误。
问题1答复:当前版本组合不兼容Angular V8
你现在安装的apollo生态版本的最低运行要求如下:
- apollo-angular 2.x 要求Angular >= 9.0
- @apollo/client 3.x 要求TypeScript >= 3.7
和你当前的Angular 8、TypeScript 3.5.3的运行环境完全不匹配。
问题2答复:不需要必须升级到Angular V10,有两种可选方案
方案1:不升级Angular版本,换用适配Angular 8的旧版依赖
直接卸载现有依赖后安装对应兼容版本即可正常使用:
- 执行卸载命令:
npm uninstall @apollo/client apollo-angular graphql
- 执行安装命令:
npm install apollo-angular@1.10.0 apollo-client@2.6.10 apollo-cache-inmemory@1.6.6 graphql@14.7.0
上述版本组合完美适配Angular 8 + TypeScript 3.5.3的环境,功能覆盖绝大多数GraphQL日常开发需求。
方案2:升级Angular版本,可继续使用新版apollo生态
最低只需要升级到Angular 9即可,不是必须升级到Angular 10:
- Angular 9 默认支持TypeScript 3.7~3.8,刚好满足@apollo/client 3.x、apollo-angular 2.x的版本要求
- 若项目允许升级更高版本,升到Angular 10+的稳定性和生态兼容性会更好。
内容的提问来源于stack exchange,提问作者Andres Hun
相关产品推荐
相关产品推荐

