我有一個關于如何利用打字稿警告可能導致運行時錯誤的陣列的問題?我有以下代碼我通常在陣列后使用問號..但是打字稿應該知道這可能會導致運行時錯誤嗎?
// cause run time erorr..
context.arr[props.id].includes(select)
// no run time erorr
context.arr[props.id]?.includes(select)
uj5u.com熱心網友回復:
?.是optional chaining,如果左側的運算式被定義(不是 undefined/null),它將與后面的內容正確鏈接,undefined否則將評估為:
context.arr[props.id]?.includes(select)
// if context.arr[props.id] is undefined/null, equivalent to:
undefined
// (does not throw an error)
// if context.arr[props.id] is notundefined/null, equivalent to:
context.arr[props.id].includes(select)
因此,只要 TypeScript 可以看到,當context.arr[props.id]不是 undefined/null 時,它將是一個陣列,該陳述句是完全型別安全的。(不過,打字稿有問題有.includes,但這是另一個問題)
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/343888.html
標籤:打字稿
上一篇:打字稿注釋問題:帶鍵值的陣列
