目次
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_date
は undefined
、有効な日付、または null
のいずれかを受け入れるようになります。
これは、オプションの日付フィールドが null
を含むことが許可される典型的なケースです。
まとめ
ZodライブラリはTypeScriptでの強力なバリデーションツールです。
.optional()
と .nullable()
の組み合わせによって、フィールドが省略されたり、 null
として設定されることを柔軟に扱うことができます。