T[] extends never[]
TypeScriptでたまに見かけるイディオム
コレを理解するためには段階的にいくつかのステップを踏む必要がある
基本的なところ
union型(a|b|c)とは何か
conditional types(T extends U ? X : Y)とは何か
次のステップ
Distributive Conditional Typesとは何か
T extends neverで、Tがunion型だった時にどういう挙動になるか
最終ステップ
では、「Tがneverの部分型であるかどうか」の判定はどうするのか?
コレがタイトルのT[] extends never[]になる