📚
TypeScriptの非nullアサーション演算子(!)について
非nullアサーション演算子とは?
非null
アサーション演算子(!
)は、その直前のオブジェクトがnull
またはundefined
でないことをTypeScriptにアサート(主張)します。
let result = doSomething(); // doSomething could possibly return null or undefined.
const item = result!;
ここで注意すべきは、非null
アサーション演算子はあくまでコンパイル時のチェックをパスさせるためのものであり、実行時にnull
やundefined
が入らないことを保証するわけではありません。
null
アサーション演算子を使うべきか?
いつ非非null
アサーション演算子の使用は注意が必要です。実行時にnull
またはundefined
が発生すると、アプリケーションはクラッシュする可能性があります。
非null
アサーション演算子は「絶対にそれがnull
またはundefined
ではない」という強い確信があるとき、そしてその確信がテストで裏付けられている場合等に使用する必要があります。
確信できない場合は、他の安全な手段であるnull
チェックやOptional chaining(?.
)などを選択することが推奨されているようです。
Discussion