ReturnType<T>
ReturnType<T>
は、関数型T
の戻り値を取得するユーティリティ型です。
ReturnType<T>の型引数
T
型引数T
には、関数の型を渡します。
ReturnTypeの使用例
ts
typeReturnType1 =ReturnType <() => string>;typeReturnType2 =ReturnType <(arg : string) => string | number>;typeReturnType3 =ReturnType <() => never>;
ts
typeReturnType1 =ReturnType <() => string>;typeReturnType2 =ReturnType <(arg : string) => string | number>;typeReturnType3 =ReturnType <() => never>;
多くはtypeof
と併用して実際の関数の戻り値を取得します。
ts
constisEven = (num : number) => {returnnum / 2 === 0;};typeisEvenRetType =ReturnType <typeofisEven >;
ts
constisEven = (num : number) => {returnnum / 2 === 0;};typeisEvenRetType =ReturnType <typeofisEven >;
ReturnType<T>
は内部的にはinfer
を使って実装されています。
ts
typeReturnType <T extends (...args : any) => any> =T extends (...args : any) => inferR ?R : any;
ts
typeReturnType <T extends (...args : any) => any> =T extends (...args : any) => inferR ?R : any;