既存の 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
お使いの版で挙動が違う場合があります。誤りに気づいたらこの解説を報告するから教えてください。