IT-Q

Pick と Omit は、何が違いますか。

Pick は指定したキーを残し、Omit は指定したキーを外します。Pick は存在しないキーがエラーになり、元の型にキーが増えても結果に混ざりません。外に出す型には Pick が安全です。

面接官が見ているのは補強。主要なユーティリティ型の使い分けを知っているか。

これは「レスポンスの型を Omit<User, "pasword"> と書いていました(綴りの間違い)。それでもエラーになりませんでした。なぜですか。」への追撃質問です。

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

  • Pick は指定したキーだけを残し、Omit は指定したキーを外す。Pick は存在しないキーを指定するとエラーになる
    その通りです。残すものを並べる Pick の方が、間違いに気づきやすい書き方です。
  • Pick は型に、Omit は値に使う
    どちらも型を作るためのものです。値には使えません。
  • 結果は同じで、書き方の好み
    残すか外すかで結果が違います。元の型にキーが増えたときの挙動も逆です。
  • Omit は実行時にプロパティを削除する
    削除しません。型を作るだけで、実行時には何もしません。

模範解答

Pick<User, "id" | "name"> は、指定したキーだけを残した型を作ります。Omit<User, "password"> は、指定したキーを外した型を作ります。

違いは2つあります。・Pick は存在しないキーを指定するとエラーになりますが、Omit はなりません・元の型にキーが増えたとき、Pick の結果には増えず、Omit の結果には増えます

外に出す型のように「余計なものが混ざると困る」場面では、Pick の方が安全です。どちらも型を作るだけで、実行時の値は何も変えません。

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