問題一覧に戻る
中級高度な型
問題40: Awaited'<'T'>'
Awaited'<'T'>'ユーティリティ型を使って、Promise型から内部の型を取得する方法を学びます。非同期処理の結果の型を扱う際に便利です。ネストしたPromiseも再帰的に展開されます。
// Promise型の定義
type PromiseString = Promise<string>;
type NestedPromise = Promise<Promise<number>>;
// Awaited型の使用
type UnwrappedString = <PromiseString>;
type UnwrappedNumber = <NestedPromise>;
// Awaited型を使った関数
async function fetchData<T>(promise: Promise<T>): Promise<<Promise<T>>> {
const result = await promise;
return result;
}