メインコンテンツまでスキップ

ReturnType<T>

ReturnType<T>は、関数型Tの戻り値を取得するユーティリティ型です。

ReturnType<T>の型引数

T

型引数Tには、関数の型を渡します。

ReturnTypeの使用例

ts
type ReturnType1 = ReturnType<() => string>;
type ReturnType1 = string
type ReturnType2 = ReturnType<(arg: string) => string | number>;
type ReturnType2 = string | number
type ReturnType3 = ReturnType<() => never>;
type ReturnType3 = never
ts
type ReturnType1 = ReturnType<() => string>;
type ReturnType1 = string
type ReturnType2 = ReturnType<(arg: string) => string | number>;
type ReturnType2 = string | number
type ReturnType3 = ReturnType<() => never>;
type ReturnType3 = never

多くはtypeofと併用して実際の関数の戻り値を取得します。

ts
const isEven = (num: number) => {
return num / 2 === 0;
};
 
type isEvenRetType = ReturnType<typeof isEven>;
type isEvenRetType = boolean
ts
const isEven = (num: number) => {
return num / 2 === 0;
};
 
type isEvenRetType = ReturnType<typeof isEven>;
type isEvenRetType = boolean

ReturnType<T>は内部的にはinferを使って実装されています。

ts
type ReturnType<T extends (...args: any) => any> = T extends (
...args: any
) => infer R
? R
: any;
ts
type ReturnType<T extends (...args: any) => any> = T extends (
...args: any
) => infer R
? R
: any;