何も当てはまらない・無いを表現する型です。型を関数の戻り値で使う関数の戻り値に使うときは、returnも使わないような本当に何も返さない時に使います。基本省略することがほとんどかなと思います。型を関数の引数に使う引数に使うとその引数は無いものとすることができます。(?)を付けなくても渡さなくていい引数扱いになります。0.fn2(undefined);関数の引数に使うのはどういう時か恐らくこれは自分でそういう関数型をわざわざ定義することは99%無いです。化(?)を付けなくてもしなくても引数の数を(型チェック的には)制御できることだと思います。