📘

【TypeScript】クラスの async 関数の返り値の型を取得する

に公開

✨ 最初に結論

まずは結果から言いますと、こうしました。

class User {
  async getUser(id: number): Promise<{ id: number; name: string; email: string }> {
    // DB とかからデータを取ってきたとして
    const user = {
      id,
      name: 'hoge',
      email: 'sample@hoge.com',
    }
    return user
  }
}

// ↓ ここ
type Profile = Awaited<ReturnType<User['getUser']>>

AwaitedReturnType については、この記事で知りました。
https://zenn.dev/noah11/articles/cce251d7ebceb0#13.-awaited<type>---promiseの中身を取り出す-🎁

最初は Awaited 付け忘れて Promise になってしまったり・・・

🐶 さいごに

自分が忘れないようにと、備忘録としてのメモです。
ただ、クラスの関数を指定する方法が強引な気もしますが、ご了承ください。🙇‍♀️
以上です!

Discussion