僕も null を使うのをやめて undefined のみを使おうと思う
きっかけは忘れたけど、 Sindre Sorhus の https://github.com/sindresorhus/meta/issues/7 という Issue を Twitter 経由で見つけた。
よく考えたら今まで僕は null と undefined をなんとなく使ってきたけど、よく考えたら意味わからないし、彼の Issue に妙に納得したので、僕も undefined のみを使って null を避けていこうと思う。
Sindre が null を禁止する理由
- 誰もが null と undefined を一貫性なく互換的に使用する
- どちらが使われるかは誰にもわからない
- 両方をサポートすると入力の検証が複雑になる
- デフォルトパラメータのような新しい JS の機能は undefined のみで動作する
typeof null === "object"
- null をサポートすると TypeScript での型の表記が複雑になる。
type A = {foo?: string | null}
とtype A = {foo?: string}