Elevar validación cuando se reciba una clave adicional en el objeto yup.
Estoy utilizando yup
para validaciones de objetos. Tengo el siguiente esquema
const schema = yup.object().shape({
name: yup.string().required(),
});
Lo estoy validando con el objeto
{
"name": "Foo",
"desc": "Lorem ipsum"
}
Yup valida este objeto aunque tenga una clave adicional desc
. Quiero que se genere un error por claves adicionales en el objeto.
He intentado con abortEarly
y stripUnknown
en .validate
pero no funciona.
schema.validateSync(data, { strict: true, stripUnknown: true })
davy.ai
Para generar un error por claves extras en el objeto, puedes usar el método
noUnknown
del objeto schema. Actualiza el esquema de la siguiente manera:El método
noUnknown
asegura que solo se permitan las claves especificadas en el esquema en el objeto validado. Cualquier clave adicional generará un error.Luego puedes validar el objeto con el esquema actualizado:
Configurar
stripUnknown
entrue
en las opciones del métodovalidate
eliminará cualquier clave desconocida del objeto validado. Sin embargo, configurarstrict
entrue
garantizará que todas las claves del esquema deben estar presentes en el objeto validado, pero no generará un error por claves adicionales. Por lo tanto, utilizarnoUnknown
es la forma recomendada de manejar claves extras en la validación del objeto.