亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

檢查組合鏈中的字段是否未定義

檢查組合鏈中的字段是否未定義

江戶川亂折騰 2021-03-29 11:18:42
假設我們有以下聲明:interface Inf1 {  field: boolean | undefined;}interface Inf2 {  field: Inf1 | undefined}interface Inf3 {  field: Inf2 | undefined}function fun1(): Inf3 | undefined {  return {field: {field: {field: true}}};}我想檢查是否fun1()等于true(或任何其他值)返回的對象中的第三嵌套字段。首先嘗試是:if (value.field.field.field) {  console.log('This code does not compile because nested `field` objects may be undefined.');}是什么原因導致編譯錯誤,因為field中間的可能是undefined。我需要編譯此代碼的目的是檢查所有嵌套對象是否不是undefined:let value = fun1();if (  value &&  value.field &&  value.field.field &&  value.field.field.field  ) {    console.log('This code is compiled successfully');  }有沒有一種方法可以“即時”檢查中間的那些“字段”是否未定義?
查看完整描述

1 回答

?
守著一只汪

TA貢獻1872條經驗 獲得超4個贊

您所需的功能在JavaScript中不存在,因此,是的,您必須通過這種測試來保護代碼:

if (value && value.field && value.field.field)

使用strict(或strictNullCheck)選項,TypeScript可幫助您考慮每個潛在的未定義值,但不會幫助您編寫保護代碼。

但仍有改進的希望。關于“ JavaScript的可選鏈接”功能的提案仍處于第1階段,但是非?;钴S。當提案到達第3階段時,TypeScript團隊是否可以在TypeScript編譯器中啟動實現?


查看完整回答
反對 回復 2021-04-08
  • 1 回答
  • 0 關注
  • 182 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號