TL;DR

  • 読み手が混乱するので、null や undefined をトップレベルの型エイリアスに含めない。
  • オブジェクトのプロパティの型に含めるのは問題ない。

内容

null や undefined をトップレベルの型エイリアスに含めると、名前から null を取りうることが読み取れず、読み手が混乱する。

type User = { id: string; name: string } | null // NG
type User = { id: string; name: string } // OK

避けるべきなのはトップレベルの場合だけである。オブジェクトのプロパティの型に含めるのは問題ない。

type BirthdayMap = { [name: string]: Date | undefined }

キーワード