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