created: 2024-07-24T03:25:14.003Z
zod で「入力は必須じゃないけど、入力した場合は 1 以上の数値を入れて欲しい」という入力欄のスキーマ定義
掲題の仕様に追加して「入力されなかった場合は undefined
になってほしい」もやろうとするとひとひねり必要。
↓ のやりかたできちんと動いた。
定義
myvalue: z
.union([
z.literal(""),
z.coerce.number().min(1)
])
.transform((v) => (v === "" ? undefined : v)),
型も number | undefined
になってくれる。