◆ 背景
Typescriptを利用していると、似たような型を定義することが多々ありました。
特に、一部を除いて後は全く同じ
という下記のような型が欲しいとき、
type sampleType1 = {
id: number;
userId: number;
title: string;
flag: boolean;
desc: string;
}
// ↓sampleType1のid以外が欲しい!
type sampleType2 = {
id?: number;
userId: number;
title: string;
flag: boolean;
desc: string;
}
type sampleType3 = {
userId: number;
title: string;
flag: boolean;
desc: string;
}
今まではオプションパラメータ(?)を利用して省略したり、渋々新しく型を定義していました。
しかし、Omit
かPick
を利用すれば、余計なオプションや型定義が不要になります。
◆ Pick(必要な型を抽出)
Pickはある型から必要な型だけを抽出することができます。
Pick<抽出対象の型定義, "型名" | "型名" | "型名" ...>
例)
type sampleType1 = {
id: number;
userId: number;
title: string;
flag: boolean;
desc: string;
}
Pick<sampleType1, "userId" | "title" | "flag" | "desc">
◆ Omit(不要な型を省く)
Omitはある型から不要な型を省くことができます。
Omit<抽出対象の型定義, "不要な型名" ...>
例)
type sampleType1 = {
id: number;
userId: number;
title: string;
flag: boolean;
desc: string;
}
Omit<sampleType1, "id">