IT-Q

既存の User 型から、すべてのプロパティを省略可能にした型を作りたい。どうしますか。

Partial<User> で、すべてのプロパティを省略可能にした型を作れます。Required、Readonly、Pick、Omit、Record もよく使います。元の型から作れば、変更が自動で追随します。

面接官が見ているのはユーティリティ型を知っているか。

よくある答えと、面談でどう見られるか

  • Partial<User> を使う
    その通りです。更新処理の引数など、一部だけ渡す場面でよく使います。
  • User 型をコピーして、すべてに ? を付けた型を新しく書く
    動きますが、User を直したときに追随しません。元の型から作る方が安全です。
  • Required<User> を使う
    逆です。Required はすべてを必須にします。
  • User | undefined と書く
    それは「User か、何も無いか」です。中のプロパティは必須のままです。

模範解答

Partial<User> を使います。すべてのプロパティを省略可能にした型が作れます。

ほかによく使うユーティリティ型は次のとおりです。Required(すべて必須にする)、Readonly(すべて読み取り専用にする)、Pick<User, "id" | "name">(一部だけ取り出す)、Omit<User, "password">(一部を除く)、Record<string, number>(キーと値の型を決めたオブジェクト)。

元の型をコピーして書き直すと、元の型を直したときにずれていきます。元の型から作れば、変更が自動で追随します。

対象: TypeScript 5.x〜7.0 照合した一次資料: 公式ドキュメント 照合: 2026-10-25 最終更新: 2026-10-25
お使いの版で挙動が違う場合があります。誤りに気づいたらこの解説を報告するから教えてください。