関数の戻り値型・引数型・Promise解決型を自動で取得するユーティリティ
function add(a: number, b: number) { return a + b; }
type R = ReturnType<typeof add>; // number
type P = Parameters<typeof add>; // [number, number]
async function fetchUser() {
return { id: 1, name: 'Alice' };
}
type User = Awaited<ReturnType<typeof fetchUser>>;
// { id: number; name: string }ライブラリの関数から型を拝借するときに非常に便利。Awaitedを使うとasync関数の解決値の型を取得できる。