nullとundefined | TypeScript Deep Dive 日本語版

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 の同一化してコードを書くと結局は不具合の温床になります。

https://zenn.dev/link/comments/c49deeeb280c14

一方でこういう意見もあった。

うーん、個人的には nullundefined で挙動が変わるようなコードを書くこと自体が危うい気がするんだよな。
サンプルコードも確かに挙動は異なるんだけど、こんなコード書いてきたら私はレビュー通さないな・・・。
もちろんサンプルだからというのはあると思うけど、7年以上 JavaScript/TypeScript を書いてきてこんなケースは今までなかったなぁ。
使う領域によって事情は違うのかもしれないが、私は賛同できなかった。