📝

TypeScriptの言語仕様に阻まれる場合

2021/06/28に公開

closure中でnullable変数に値を入れる場合

let hoge: string | null = null

// なんらかの同期的closure中でhogeに値を入れる
(() => {
  if (...) {
    hoge = ""
  }
})()

// コンパイラはclosureの中の処理をチェックしないため、ここの時点でhogeはnullと認識する

変数宣言の時点でコンパイラに T | null typeと認識させれば解決する

let hoge = null as string | null

https://stackoverflow.com/a/61598241

Discussion