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