簡體   English   中英

Object 可能是可選鏈接上的“未定義”錯誤 Typescript

[英]Object is possibly 'undefined' Error on Optional Chaining Typescript

我有一個正在訪問的響應: data?.currentOrganization?.onboardingSteps? . 如您所料,data、currentOrganization 和 onboardingSteps 可能都是 null。 我想分配一個變量如下:

const hasSteps = data?.currentOrganization?.onboardingSteps?.length > 0;

如果任何字段為 null 或少於 1 步,我認為 hasValue 將評估為 false。 但是,我收到 TypeScript 錯誤: Object is possibly 'undefined'

這就是我目前解決它的方式:

const hasSteps =
  data?.currentOrganization?.onboardingSteps != null &&
  data?.currentOrganization?.onboardingSteps?.length > 0;

這感覺不必要地冗長。 有沒有其他更優雅的解決方案?

可選鏈最終將產生一個data?.currentOrganization?.onboardingSteps?.lengthnumber ,如果鏈中的所有內容都不是nullundefined .... 但如果鏈中的任何內容為空,則該值可能是一個數字output 本身將是undefined的。 如果沒有 Typescript 抱怨,您將無法測試undefined > 0

因此,您可能應該執行以下操作:

const hasSteps = (data?.currentOrganization?.onboardingSteps?.length ?? 0) > 0;

如果可選鏈以undefined結尾,則使用無效合並來產生0

Playground 代碼鏈接

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM