最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

typescript - How to avoid destructuring undefined values in JavaScript? - Stack Overflow

programmeradmin4浏览0评论

I get response registryReportSettings from server:

this.getRegistrySettings(registry.Id).subscribe((registryReportSettings: { extended: ReportPropertiesRequest }) => {
  const { objectProperties, reportProperties, textProperties } = registryReportSettings?.extended;
}

If it is null I get an error:

TypeError: Cannot destructure property 'objectProperties' of '(intermediate value)(intermediate value)(intermediate value)' as it is undefined.

How to fix it using TS?

I get response registryReportSettings from server:

this.getRegistrySettings(registry.Id).subscribe((registryReportSettings: { extended: ReportPropertiesRequest }) => {
  const { objectProperties, reportProperties, textProperties } = registryReportSettings?.extended;
}

If it is null I get an error:

TypeError: Cannot destructure property 'objectProperties' of '(intermediate value)(intermediate value)(intermediate value)' as it is undefined.

How to fix it using TS?

Share Improve this question edited Sep 23, 2021 at 10:18 Audwin Oyong 2,5313 gold badges19 silver badges36 bronze badges asked Sep 21, 2021 at 16:42 user15423370user15423370 1
  • Start by properly declaring the type to match the values you're actually getting: { extended: ReportPropertiesRequest | null } – Bergi Commented Sep 24, 2021 at 2:07
Add a ment  | 

1 Answer 1

Reset to default 9

The error means that you try to deconstruct a possible undefined (Because you use optional chaining)

You can do

const { objectProperties, reportProperties, textProperties } = registryReportSettings?.extended ?? {};

So you will always deconstruct an object

发布评论

评论列表(0)

  1. 暂无评论