問題に挑戦!
Promise ライクな型が内包する型をどのように取得すればよいでしょうか。
例えば:Promise<ExampleType>
という型がある場合、どのようにして ExampleType を取得すればよいでしょうか。
type ExampleType = Promise<string>;
type Result = MyAwaited<ExampleType>; // string
💡ヒント
infer
は推論された型を取得するのに役立ちます。
type ReturnType<T> = T extends (
...args: any[]
) => infer R
? R
: any;
上記のコードではReturnType
に渡された型の関数の引数を推論してその型を返します。
この性質を利用して、Promise
の内部の型を推論して取り出すことができます。