Utility Typesとは
Utility Types(ユーティリティ型)は、既存の型を元に新しい型を生成することができる型です。
Partial型とは
Partial型(パーシャル型)は、特定の型の全てのプロパティをオプショナル(任意)にすることができます。
Partial型の使用例
type UserProfile = {
name: string;
age: number;
address: string;
};
このUserProfile
型のプロパティは、現状全て必須です。
なので、UserProfile
型のオブジェクトを作成する時には、name
・age
・address
の全てのプロパティを渡す必要があります。
そこで、もし一部のプロパティだけを扱いたい場合や、全てのプロパティが必ずしも存在しない場合に、Partial型を使用します。
type PartialUserProfile = Partial<UserProfile>;
/*PartialUserProfileの型は以下のようになります
type PartialUserProfile = {
name?: string;
age?: number;
address?: string;
*/
};
?
記号は、そのプロパティが存在しても存在していなくても良いことを示しています。
つまり、各プロパティはオプショナル(任意)となります。
なので、Partial<UserProfile>
を用いてオブジェクトを作成する際には、UserProfile
の全てのプロパティが含まれていないくても問題ありません。
例えば以下のように、Partial<UserProfile>
を用います。
const tanaka: PartialUserProfile = {
name: 'Tanaka',
}
console.log(tanaka) //=>{ name: 'Tanaka' }
tanaka
オブジェクトは、name
・age
・address
の全てのプロパティを含んでいないですが、Partial<UserProfile>
によってオプショナルになっているため、問題ありません。
まとめ
Partial型(パーシャル型)を用いることで、特定の型の全てのプロパティをオプショナル(任意)にすることができました。
わかりやすい実例は今後追記していきたいと思います。