在打字稿中读取 AWS CDK 应用程序中的道具

时间:2021-01-31 05:37:38

标签: javascript go aws-cdk

我是 Go 语言的新手,我正在使用以下签名将一些属性 props? 传递给我的 CDK 应用程序堆栈:props?: cdk.StackProps

现在,当我通过键入 props 在控制台上打印变量 console.log(props) 时,我看到了这一点(如预期):

{ env: { account: '112358132134', region: 'us-west-2' } }

但是,当我执行以下操作时:console.log(props['env']) 我收到以下错误:

console.log(props["env"]["account"])

我收到此错误:

error TS2532: Object is possibly 'undefined'.

我的目标是将此属性用于我的业务逻辑。我怎样才能阅读它?

1 个答案:

答案 0 :(得分:0)

访问 account 属性可能会失败,因为 env 属性是 optional

您的 TypeScript 设置似乎打开了 strict null checking,因此由于潜在的 TypeError,代码将无法编译。

您可以关闭 strict null checking,但通常最好保持启用状态。

您还可以重写代码以应对 env 成为 undefined

console.log(props.env?.account); // If You have high enough TS version
// OR
console.log(props['env'] ? props['env']['account'] : undefined);