Skip to content

Reimplement ReturnType<T> #1083

@ryota-murakami

Description

@ryota-murakami

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 を返す関数のケース

やること

  • packages/types/ に再実装ファイルを作成
  • Vitest の expectTypeOf を使ったテストを記述
  • void 関数、Promise を返す関数、ジェネリック関数のケースをカバー

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions