TypeScript 入門 Promise の T の部分の型を取得する方法

Promise<string> であれば、string を返すような型を考える。

inferを使うことで可能です。

type Await<T> = T extends Promise<infer U> ? U : never
type T1 = Await<Promise<string>> // T1はstring