目次
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 として設定されることを柔軟に扱うことができます。