Доброго вечера. Столкнулся с проблемой валидации. У меня есть поле A: boolean optinal и поле В массив. Поле В это массив, который обязателен если A === true. Пробовал:
//schema основные филды
z.object(schema).superRefine((values, ctx) => {
if (values.A) {
ctx.addIssue({
code: z.ZodIssueCode.custom,
path: ['B'],
message: 'Required',
});
}
})
Также
.and(
z.union([
z.object({
A: z.literal(false),
B: z.array(z.any()).optional(),
}),
z.object({
A: z.literal(true),
B: z.array(z.any()),
}),
])
);
Первый вариант вобще дохлый не отрабатывает. Второй отрабатывает не правильно, всегда ждет false. Как правильно реализовать?