技術ブログ

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

TypeScriptにおけるZodライブラリを使用した日付バリデーション

目次

TypeScriptにおけるZodライブラリを使用した日付バリデーション

TypeScriptでZodライブラリを使用する際、日付フィールドが null を許容するようにする方法について説明します。

問題

次のようなZodスキーマがあります

create_date: z.date().optional(),

このスキーマは create_date が省略可能であることを意味しますが、フィールドが null として明示された場合にはエラーが発生します。

エラーメッセージは以下のようになります

ZodError: [
  {
    "code": "invalid_type",
    "expected": "date",
    "received": "null",
    "path": [
      "create_date"
    ],
    "message": "Expected date, received null"
  }
]

解決策

null 値も許容するためには .nullable() メソッドを使用します。
以下のようにスキーマを変更します

create_date: z.date().optional().nullable(),

この変更により、 create_dateundefined、有効な日付、または null のいずれかを受け入れるようになります。
これは、オプションの日付フィールドが null を含むことが許可される典型的なケースです。

まとめ

ZodライブラリはTypeScriptでの強力なバリデーションツールです。
.optional().nullable() の組み合わせによって、フィールドが省略されたり、 null として設定されることを柔軟に扱うことができます。