問題

関数の引数の型を引き剥がしたい。Parameters<T> で取れるのは知っている。でも、第一引数だけ取りたい。

type FirstParam<T> = T extends (first: infer F, ...rest: any[]) => any ? F : never;

これで終わりだった。週末が、消えた。