0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

お題は不問!Qiita Engineer Festa 2023で記事投稿!

【備忘録】TypeScriptで型定義から一部を抽出する(Omit, Pick)

Posted at

◆ 背景

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;
}

今まではオプションパラメータ(?)を利用して省略したり、渋々新しく型を定義していました。
しかし、OmitPickを利用すれば、余計なオプションや型定義が不要になります。



◆ 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">
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?