🐐
【TypeScript】エラー回避用Tips
非nullアサーション演算子!
とオプショナル・チェイニング演算子?
は、TypeScript でnullish
な値を取り扱うための演算子です。
! (非nullアサーション演算子)
!
は変数や式の末尾に使用され、その変数がnull
またはundefined
でないことをコンパイラに伝える。
- TypeScriptはその変数を
非null
・undefined
として扱うようになる - 絶対にnullやundefinedにならないと確信できる場合にのみ使用
const element: HTMLElement = document.getElementById('myElement')!;
? (オプショナル・チェイニング演算子)
- 主に
?
はオブジェクトのプロパティやメソッドへのアクセス時に使用される - その直前のオブジェクトが
null
またはundefined
の場合、undefined
を返しエラーを回避する
const dateList: Date[] | undefined = getDateList();
const firstDate: string | undefined = dateList?.[0]?.toString();
非nullアサーション演算子とオプショナル・チェイニング演算子の違い
-
!
はこれは確実にnullではないとコンパイラに伝えるもの -
?
はもしnullまたはundefinedだったらundefinedを返すという安全なアクセスを提供するためのもの
null合体演算子
- fetchDataで取得した値がもしundefinedやnullだったら、falseを設定できる
const flag: boolean = fetchData() ?? false;
Discussion