組み込みのReturnType<T>
を実装する。
infer
で戻り値の型を取得して、あとはいつものU or neverです。
type MyReturnType<T extends (...args: any[]) => any> = T extends (...args: any[]) => infer U ? U : never
ReturnType
https://www.typescriptlang.org/docs/handbook/utility-types.html#returntypetype
関数F
を渡すと、その戻り値の型を返す。
type T0 = ReturnType<() => string>
// type T0 = string
昨日の問題の変化系ですね。
https://ikuma-t.work/posts/type-challenge-parameters
任意の関数を示すのに、(...args: any[]) => any
がさらっと出てくるようになったのは成長の証です。
ところでMediumの問題とEasyの境目はなんなのでしょうか…。