Как заставить Zod вести себя как интерфейс и класс, вынужденные реализовать указанный интерфейсJavascript

Форум по Javascript
Anonymous
Как заставить Zod вести себя как интерфейс и класс, вынужденные реализовать указанный интерфейс

Сообщение Anonymous »

Я пытаюсь достичь следующего поведения. < /p>

Код: Выделить всё

export const NotificationDataSchema = z.object({
type: z.string(),
data: z.object({}),
});

export const LikesMilestoneSchema = NotificationDataSchema.extend({
type: z.literal('LikesMilestone'),
data: z.object({
count: z.number(),
});
});

export const NewFollowerSchema = NotificationDataSchema.extend({
type: z.literal('NewFollower'),
// data: z.object({
//     age: z.number(),
// })
});
И я хочу, чтобы newfollowerschema > показать ошибку, потому что он не определяет данные аналогично тому, как взаимодействуют интерфейс и классы, это возможно?export const NotificationData = z.union([
LikesMilestoneSchema,
NewFollowerSchema,
]);

export const NotificationSchema = z.object({
id: z.string(),
isRead: z.boolean(),
date: z.date(),
data: NotificationData
});
< /code>
Так что я мог бы отправить его в качестве объединенного списка на фронт, где он будет проанализирован.>

Подробнее здесь: https://stackoverflow.com/questions/796 ... id-interfa

Вернуться в «Javascript»