typescript - Hur man slår ihop en ZodEffect med en ZodObject
Jag har två scheman, jag skulle vilja återanvända det första schemat i det andra schemat, detta fungerar bra när det första schemat inte använder refine- eller super-fine-metoderna. Enligt dokumentationen borde detta vara möjligt genom att helt enkelt skicka det andra schemat som ett argument till merge-metoden i det första schemat. Jag får ett typfel som säger att det första schemat är av typen ZodEffects, finns det ett sätt att härleda det underliggande objektet?
import { z } from 'zod';
const FirstSchema = z.object({
name: z.string().min(1),
});
const SeccondSchema = z
.object({
lastname: z.string().min(1),
})
.refine((data) => data.lastname.includes('foo'));
const MergedSchema = FirstSchema.merge(SeccondSchema); // <-- How to convert ZodEffect to ZodObject?
Här är ett exempel i Stack Blitz med mitt fel: https://stackblitz.com/edit/typescript-r9on2v?file=index.ts
Svar #1
Löst genom att använda innerType-metoden
const MergedSchema = FirstSchema.merge(SeccondSchema.innerType());
