2017-09-22 16 views
0

であるのを避けることができますか?のエラーがtypescriptでstrictNullChecksモードでコンパイルされました。Arrayの "Object is Undefined"がTypescriptエラーの

interface Hoge { 
    num?: number; 
} 

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

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

playgroundstrictNullChecksを確認してください)

しかし、私はこれらの条件が完全にundefinedはすでにhogeを入力避けてきたと思いました。

私はnull以外のアサーション演算子がうまく動作すると思います:hoge[0].num!しかし、他のタイプの安全な方法があるかどうかは疑問です。

答えて

0

変数の配列の最初の項目を取得します。次に、条件は動作します:

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