variant

View Source

Summary

Create a discriminated-union schema.

The returned schema expects an object with a discriminator property and selects a variant schema based on that value.

Signature

function variant<
  key extends PropertyKey,
  variants extends Record<PropertyKey, Schema<any, any>>,
>(
  discriminator: key,
  variants: variants,
): Schema<unknown, InferOutput<variants[keyof variants]>>;

Params

discriminator

The property name used to select a variant

variants

Returns

A schema that produces the selected variant output type