スキーマバリデーションのライブラリである yup の話です。
以下のようなネストになったスキーマがあるとします。
yup.object({ foo: yup.object({ bar: yup.string.require() }) })
foo
は require ではないので任意項目のはずです。しかし、内部の bar
が require なため、 foo
が存在しないとバリデーションエラーとなります。
以下のように、 default(undefined)
を指定すれば OK
yup.object({ foo: yup.object({ bar: yup.string.require() }).default(undefined) })