假設我們有以下聲明: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'); }有沒有一種方法可以“即時”檢查中間的那些“字段”是否未定義?
檢查組合鏈中的字段是否未定義
江戶川亂折騰
2021-03-29 11:18:42