generated at
TypeScriptで高階多相型

ていねい
ts
type App<F, X> = F extends Fun ? (F & { arg: X })["ret"] : never; interface Fun { arg: unknown; ret: unknown; }
proposal (?)
mini-fnの開発者の記事