zodライブラリの.optionalメソッドについて
zodはTypeScript向けの堅牢なバリデーションライブラリです。
この記事では、.optionalメソッドとその使用方法について詳しく解説します。
.optional()とは?
.optional()メソッドは、特定のキーの値をオプションにするためのメソッドです。
これを使用すると、そのキーは存在しなくても良くなり、存在する場合には指定された型に従っている必要があります。
const userSchema = z.object({
name: z.string(),
age: z.number().optional(),
});
この例では、nameは必須ですが、ageはオプションです。
.optional()の利点
.optional()を使用する主な利点は、データの柔軟性を保ちつつ、その存在時の形式や型を厳密に制限できることです。
例えば、データベースから取得したユーザー情報に、一部のユーザーが持っていないフィールドがある場合などに非常に役立ちます。
.partial()との違い
.optional()と.partial()は似た動作をするように見えることがありますが、彼らの適用範囲が異なります。
.optional()は特定のキーの値そのものをオプションにします。.partial()はオブジェクトスキーマ全体に適用され、全てのキーをオプションにします。
まとめ
zodの.optionalメソッドは、特定のキーの値を任意として扱いたい場合に非常に便利です。
このメソッドを適切に使用することで、データの柔軟性を保ちつつ、その存在時の形式や型を厳密に制限することができます。