【Javascript/Typescript】undefined/null を 真偽値 の false にする

  • Javascript

Typescript を使っている時、真偽値(boolean)しか受け付けないものに undefined や null を代入しようとするとエラーになります。

type MyType = boolean;
const myvar: MyType = null;

-> Type 'null' is not assignable to type 'boolean'

Javascript では undefined や null は false に変換されるので、問題ないといえば無いですが、Typescript だと定義された型以外のものは警告が出るので、以下は falsy なものを false として扱いたいときに変換する方法です。

! (否定)を使う

undefinednull!!で二重否定とすると booleanfalse になります

エクスクラメーションマークを2つ連続で使うだけなので短くて済みますが、意味を知らないとパッと見て分かりにくいです。

type MyType = boolean;
const myvar: MyType = !!null; // false

!をつけることで、下記のような形で変換されます。

  • null … null
  • !null … true
  • !!null … false

Boolean() を使う

Boolean() の中に値を入れると、boolean に型変換することができます。

type MyType = boolean;
const myvar: MyType = Boolean( null );  // false