UnionValidatorConfig

See source code

Configuration type for union validators. Each variant must be a validator that produces an object with the discriminator key set to the variant name.

type UnionValidatorConfig<Key extends string, Config> = {
  readonly [Variant in keyof Config]: Validatable<any> & {
    validate(input: any): {
      readonly [K in Key]: Variant;
    };
  };
};

Example

type ShapeConfig = UnionValidatorConfig<
  "type",
  {
    circle: Validatable<{ type: "circle"; radius: number }>;
    square: Validatable<{ type: "square"; size: number }>;
  }
>;
Prev
TLVideoShape