2017-09-22 24 views
0

我收到了在typescript中使用strictNullChecks模式編譯的錯誤。我可以避免Array的「對象可能'未定義''Typescript錯誤

interface Hoge { 
    num?: number; 
} 

const hoge: Hoge[] = [{ num: 1 }]; 

if (!!hoge && hoge.length > 0 && !!hoge[0] && !!hoge[0].num) { 
    hoge[0].num.toString() 
} 

playground(請strictNullChecks

不過,我認爲這些條件已經完全避免undefined類型hoge了。

我猜非空斷言運算符效果不錯:hoge[0].num!,但我想知道是否有其他類型的安全方式。

回答

0

在變量中獲取數組的第一項。然後,條件應該工作:

if (hoge.length > 0) { 
    let item = hoge[0] 
    if (item.num) { 
    item.num.toString() // OK in strictNullChecks mode 
    } 
} 
相關問題