Reimplement ReturnType<T>
TypeScript built-in Utility Type を自前で再実装し、テストを記述して理解を深める。
Original Definition (src/lib/es5.d.ts)
/**
* Obtain the return type of a function type
*/
type ReturnType<T extends (...args: any) => any> = T extends (...args: any) => infer R ? R : any;
学習ポイント
infer R で 戻り値 の位置から型を推論する
Parameters<T> と対になる存在 — 引数 vs 戻り値
never を返す関数のケース
やること
Reimplement
ReturnType<T>TypeScript built-in Utility Type を自前で再実装し、テストを記述して理解を深める。
Original Definition (src/lib/es5.d.ts)
学習ポイント
infer Rで 戻り値 の位置から型を推論するParameters<T>と対になる存在 — 引数 vs 戻り値neverを返す関数のケースやること
packages/types/に再実装ファイルを作成expectTypeOfを使ったテストを記述