鈴木颯介のブログ

僕も 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}