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 }