Is it possible for Zod to enforce that a passed schema’s type is constrained to a base schema? I suspect I might be way off base here, but hopefully it is clear what I’m trying to achieve in the example.
Thank you.
<code>import { ZodType, z } from "zod";
const baseSchema = z.object({baseString:z.string()})
const validChildSchema = baseSchema.extend({childString:z.string()})
const invalidChildSchema = z.object({childString:z.string()})
class baseClass<TSchema> // eg something like "extends ZodType<typeof baseSchema>"
{}
class childClassValid extends baseClass<typeof validChildSchema>{}
// Can I change the baseclass so that this does not compile?
class childClassInvalid extends baseClass<typeof invalidChildSchema>{}
</code>
<code>import { ZodType, z } from "zod";
const baseSchema = z.object({baseString:z.string()})
const validChildSchema = baseSchema.extend({childString:z.string()})
const invalidChildSchema = z.object({childString:z.string()})
class baseClass<TSchema> // eg something like "extends ZodType<typeof baseSchema>"
{}
class childClassValid extends baseClass<typeof validChildSchema>{}
// Can I change the baseclass so that this does not compile?
class childClassInvalid extends baseClass<typeof invalidChildSchema>{}
</code>
import { ZodType, z } from "zod";
const baseSchema = z.object({baseString:z.string()})
const validChildSchema = baseSchema.extend({childString:z.string()})
const invalidChildSchema = z.object({childString:z.string()})
class baseClass<TSchema> // eg something like "extends ZodType<typeof baseSchema>"
{}
class childClassValid extends baseClass<typeof validChildSchema>{}
// Can I change the baseclass so that this does not compile?
class childClassInvalid extends baseClass<typeof invalidChildSchema>{}