本記事では、TypeScriptのユーティリティ型のひとつであるPick
について解説します。
Pcik
を使用することで、既存の型から特定のプロパティだけを抽出した新しい型を作成することができます。これは、既存の型から一部のプロパティだけを使用したい場合や、型の再利用性を高めたい場合に非常に便利です。
Pick<Type, Keys>
Pick<Type, Keys>
は既存の型Typeの中から指定したKeysのみを含む型を作成します。Typeに存在しないKeyを指定するとコンパイルエラーになります。
// 元となる型
type User = {
id: number;
name: string;
email: string;
isAdmin: boolean;
};
// 特定のプロパティだけを持つ新しい型を作成
type UserPreview = Pick<User, "id" | "name">;
/*
以下の型と同じ
type UserPreview = {
id: number,
name: string
}
*/
// UserPreview型のオブジェクトを作成
const user: UserPreview = {
id: 1,
name: "Yamada Taro",
};
// 存在しないキーを指定
type InvalidUserPreview = Pick<User, "id" | "name" | "age">;
// エラー: 型 '"age"' は型 'keyof User' に割り当てられません。
Omit<Type, Keys>
Pick
が既存の型からKeysを抜き出すのに対して、Omit
はKeysを除きます。
// 元となる型
type User = {
id: number;
name: string;
email: string;
isAdmin: boolean;
};
// 特定のプロパティを除いた型を作成
type UserWithoutAdmin = Omit<User, "isAdmin">;
/*
以下の型と同じ
type UserWithoutAdmin = {
id: number;
name: string;
email: string;
}
*/
// UserWithoutAdmin型のオブジェクトを作成
const user: UserWithoutAdmin = {
id: 1,
name: "Takuro Saito",
email: "example@example.com",
};
Omitについて詳しくは以下で解説しています。