首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >“App”类型的参数不能分配给“结构”类型的参数

“App”类型的参数不能分配给“结构”类型的参数
EN

Stack Overflow用户
提问于 2022-01-10 12:49:31
回答 2查看 6.5K关注 0票数 9

我正在尝试简单的CDK教程,但是我遇到了一些错误。

我的代码就是这样,

代码语言:javascript
复制
Argument of type 'App' is not assignable to parameter of type 'Construct'.
Type 'App' is missing the following properties from type 'Construct': onValidate, onPrepare, onSynthesize, validate, and 2 more.

7 new HelloCdkStack(app, 'HelloCdkStack', {

不知怎的,这个错误出现了,但是在一些使用cdk.App()的教程中。为什么会发生这个错误??

代码语言:javascript
复制
import * as cdk from "@aws-cdk/core";
import {Table, AttributeType} from "@aws-cdk/aws-dynamodb";

export class HelloCdkStack extends cdk.Stack {
  constructor(scope: cdk.Construct, id: string, props?: cdk.StackProps) {
    super(scope, id, props);

    new Table(this, "items", {
      partitionKey: {
        name: "itemId",
        type: AttributeType.STRING,
      },
      tableName: "items",
      removalPolicy: cdk.RemovalPolicy.DESTROY, // NOT recommended for production code
    });
    // The code that defines your stack goes here

    // example resource
    // const queue = new sqs.Queue(this, 'HelloCdkQueue', {
    //   visibilityTimeout: cdk.Duration.seconds(300)
    // });
  }
}
const app = new cdk.App();
new HelloCdkStack(app, "HelloCdkStack");
app.synth();
EN

回答 2

Stack Overflow用户

发布于 2022-01-20 14:31:05

在AWSCDK1.x中,导入是使用“@ AWS /core”进行的。这在CDK 2.x中发生了改变,其中导入是从包中进行的。

许多教程仍然使用CDK1.x,而CDK的初学者代码使用2.x。这就是为什么您有差异,因为应用程序初始化的代码会说使用较新的模块,而教程则会假设您会以旧的方式这样做。

为了解决这个问题,

更新堆栈文件以使用新的堆栈文件:import { Stack, StackProps } from 'aws-cdk-lib';

  • update应用程序初始化文件使用旧的堆栈文件:import * as cdk from '@aws-cdk/core';

AWSCDK2.x:https://docs.aws.amazon.com/cdk/api/v2/docs/aws-cdk-lib-readme.html文档

AWSCDK1.x:https://docs.aws.amazon.com/cdk/api/v1/docs/aws-construct-library.html文档

票数 12
EN

Stack Overflow用户

发布于 2022-01-11 08:00:14

转到cdk_primer-stack.ts文件并修复从import * as cdk from 'aws-cdk-lib';导入到import * as cdk from '@aws-cdk/core';的核心SDK,问题是您在文件中使用的core版本与在cdk_primer-stack.ts中导入的版本不同。

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70652702

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档