AWS CDK Typescript编译报错:同类型不同路径实例无法分配给参数
解决方法
问题根源
你项目内所有AWS CDK相关依赖的版本未对齐:package.json中@aws-cdk/core被固定为1.121.0,其余@aws-cdk开头的依赖都使用1.122.0版本,更高版本的CDK子包会自动拉取对应版本的@aws-cdk/core作为嵌套依赖,导致本地存在两套不同版本的核心库,Typescript会判定二者类型不兼容。
操作步骤
- 统一所有AWS CDK相关包的版本,将
package.json中所有@aws-cdk开头的依赖版本都改为1.122.0,修改后依赖配置如下:
"dependencies": { "@aws-cdk/aws-apigateway": "1.122.0", "@aws-cdk/aws-codepipeline": "1.122.0", "@aws-cdk/aws-codepipeline-actions": "1.122.0", "@aws-cdk/aws-dynamodb": "1.122.0", "@aws-cdk/aws-lambda": "1.122.0", "@aws-cdk/core": "1.122.0", "@aws-cdk/pipelines": "1.122.0", "@types/aws-lambda": "^8.10.83", "source-map-support": "^0.5.16" }
- 删除本地依赖缓存和锁文件,避免旧版本残留:
rm -rf node_modules package-lock.json yarn.lock
- 重新安装依赖:
npm install # 若使用yarn则执行 yarn install
- 重新执行编译验证问题是否解决:
npm run build
内容的提问来源于stack exchange,提问作者Smit
相关产品推荐
相关产品推荐

