never型の判定
以下のいずれかを使う
T[] extends never[]
[T] extends [never]
[T] extends [never]
理由は、この辺を参照
T がneverの時の、T extends .. は、問答無用でneverになる
[U] extends ..でdistributeを避ける
ざっくり書くと、
T=never
のとき、
T extends never
と書けない
書くと
?
節、
:
節に入らず、
never
が返ってきてしまう為、条件として使えない
そこで、分配させなくするためにunionでなくしたい
だから
T[]
とか
[T]
のように書く