2018年11月04日

TypeScriptのPick

TypeScriptのPickを利用すると特定の型から特定の項目を抜き出した型を作成することができます。

export enum Gender {
man,
woman,
etc
}

export interface PersonData {
name: string
age: number
gender: Gender
}

const personData: PersonData = {
name: 'yamada tarou',
age: 12,
gender: Gender.man
}


PersonDataにはnameとageとgenderという3つのプロパティが存在しますが、以下のようにPickを利用してnameとageの型を作成できます。

export type SimpleData = Pick<PersonData, 'name' | 'age'>

export const simpleData: SimpleData = {
name: 'yamada tarou',
age: 12
}


export interface CompanyData {
companyName: string
address: string
tell: string
}

型作成時に&でつなげることで複数の型を連結した型を作成することもできます。

export type StaffSimpleData = Pick &
Pick

export const staffSimpleData: StaffSimpleData = {
name: 'yamada tarou',
age: 12,
companyName: 'toyota',
address: '名古屋'
}


特定の型を追加して行くことも可能です。

export type StaffData = Pick &
Pick & {
staffId: number
}

export const StaffData: StaffData = {
name: 'yamada tarou',
age: 12,
companyName: 'toyota',
address: '名古屋',
staffId: 100
}
posted by ねこまんま at 15:24 | TypeScript | 更新情報をチェックする