TypeScriptでundefined or nullを真偽値に変換する
やりたいこと
null
や undefined
の値をfalsyな真偽値として扱いたい
結論
Boolean()
あるいは !!
で二重否定を使う。
const unData = undefined;
const nullData = null;
const strData = "";
const arrData: string[] = [];
const objData = {};
// !! をつけることで、 nullの場合、undefinedの場合にfalseとなる
// false
console.log("unData", !!unData);
// false
console.log("nullData", !!nullData);
// 空文字列もfalseになる
console.log("strData", !!strData);
// 空配列はtrueになる
console.log("arrData", !!arrData);
// オブジェクトはtrueになる
console.log("objData", !!objData);
単純に null
の場合はnull
。!null
とした場合はnullの否定なのでtrue
。 !!null
とした場合は二重否定となるのでfalse
となる。
undefined
や 空文字列('')
でも同じ挙動を確認できた。 空配列やオブジェクトに対しては使えない。