2024-05-31
https://typescript-jp.gitbook.io/deep-dive/recap/null-undefined
私は個人的に、ほとんどのプロジェクトにおいて、意見がバラバラのライブラリを使っていますが、
== null
で除外するだけなので、2つの区別について気にすることはありません。
私も == null
で除外することで困ることは今までなかったので、この意見に賛成派。
むしろ === null
=== undefined
のようにどちらかだけチェックした結果、ランタイム上では別な方で動いてバグになったという経験がある。
ちゃんと調べればどちらかに絞れるとは思うが、そこまで時間的コストをかけるより == null
を使えば良いと思う。
TypeScript Deep Drive で書かれている、==nullで判断するというのは実に危ないコードになります。
False属性は、falseと判定するのがたくさんの値になってしまっているので、コードがよみにくく不具合の温床になってしまうのですが、同様に、 null と undefined の同一化してコードを書くと結局は不具合の温床になります。
一方でこういう意見もあった。
うーん、個人的には null
と undefined
で挙動が変わるようなコードを書くこと自体が危うい気がするんだよな。
サンプルコードも確かに挙動は異なるんだけど、こんなコード書いてきたら私はレビュー通さないな・・・。
もちろんサンプルだからというのはあると思うけど、7年以上 JavaScript/TypeScript を書いてきてこんなケースは今までなかったなぁ。
使う領域によって事情は違うのかもしれないが、私は賛同できなかった。