ZodDiscriminatedUnion
import { ZodDiscriminatedUnion } from "https://esm.sh/zod@3.25.76/index.d.cts";class ZodDiscriminatedUnion<Discriminator extends string, Options extends readonly ZodDiscriminatedUnionOption<Discriminator>[]> extends ZodType<output<Options[number]>, ZodDiscriminatedUnionDef<Discriminator, Options>, input<Options[number]>> { }
get discriminator(): Discriminator;
get options(): Options;
static create<Discriminator extends string, Types extends readonly [ZodDiscriminatedUnionOption<Discriminator>, ...ZodDiscriminatedUnionOption<Discriminator>[]]>(
discriminator: Discriminator,
options: Types,
params?: RawCreateParams,
): ZodDiscriminatedUnion<Discriminator, Types>;§Type Parameters
§
Options extends readonly ZodDiscriminatedUnionOption<Discriminator>[]
[src]§Extends
§
ZodType<output<Options[number]>, ZodDiscriminatedUnionDef<Discriminator, Options>, input<Options[number]>>
[src]§Properties
§
optionsMap: Map<Primitive, ZodDiscriminatedUnionOption<any>> readonly
[src]§Methods
§
_parse(input: ParseInput): ParseReturnType<this["_output"]>
[src]§Static Methods
§
create<Discriminator extends string, Types extends readonly [ZodDiscriminatedUnionOption<Discriminator>, ...ZodDiscriminatedUnionOption<Discriminator>[]]>(discriminator: Discriminator, options: Types, params?: RawCreateParams): ZodDiscriminatedUnion<Discriminator, Types>
[src]The constructor of the discriminated union schema. Its behaviour is very similar to that of the normal z.union() constructor. However, it only allows a union of objects, all of which need to share a discriminator property. This property must have a different value for each object in the union.
@param discriminator
the name of the discriminator property
@param types
an array of object schemas
@param params