generated at
never型の判定
以下のいずれかを使う
T[] extends never[]
[T] extends [never]

理由は、この辺を参照
ざっくり書くと、
T=never のとき、 T extends never と書けない
書くと ? 節、 : 節に入らず、 never が返ってきてしまう為、条件として使えない
そこで、分配させなくするためにunionでなくしたい
だから T[] とか [T] のように書く