技術ブログ

プログラミング、IT関連の記事中心

`zod`ライブラリの`.optional`メソッドについて

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メソッドは、特定のキーの値を任意として扱いたい場合に非常に便利です。
このメソッドを適切に使用することで、データの柔軟性を保ちつつ、その存在時の形式や型を厳密に制限することができます。