> ## Documentation Index
> Fetch the complete documentation index at: https://docs.bijection.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Class: VUnion<Type, T, IsOptional, FieldPaths>

> The type of the v.union() validator.

[values](/api/modules/values).VUnion

The type of the `v.union()` validator.

## Type parameters

| Name | Type |
| :- | :- |
| `Type` | `Type` |
| `T` | extends [`Validator`](/api/modules/values#validator)\<`any`, `"required"`, `any`>\[] |
| `IsOptional` | extends [`OptionalProperty`](/api/modules/values#optionalproperty) = `"required"` |
| `FieldPaths` | extends `string` = `T`\[`number`]\[`"fieldPaths"`] |

## Hierarchy

* `BaseValidator`\<`Type`, `IsOptional`, `FieldPaths`>

  ↳ **`VUnion`**

## Constructors

### constructor

• **new VUnion**\<`Type`, `T`, `IsOptional`, `FieldPaths`>(`«destructured»`)

Usually you'd use `v.union(...members)` instead.

#### Type parameters

| Name | Type |
| :- | :- |
| `Type` | `Type` |
| `T` | extends [`Validator`](/api/modules/values#validator)\<`any`, `"required"`, `any`>\[] |
| `IsOptional` | extends [`OptionalProperty`](/api/modules/values#optionalproperty) = `"required"` |
| `FieldPaths` | extends `string` = `T`\[`number`]\[`"fieldPaths"`] |

#### Parameters

| Name | Type |
| :- | :- |
| `«destructured»` | `Object` |
| › `isOptional` | `IsOptional` |
| › `members` | `T` |

#### Overrides

BaseValidator\&lt;Type, IsOptional, FieldPaths\&gt;.constructor

## Properties

### type

• `Readonly` **type**: `Type`

Only for TypeScript, the TS type of the JS values validated
by this validator.

#### Inherited from

BaseValidator.type

***

### fieldPaths

• `Readonly` **fieldPaths**: `FieldPaths`

Only for TypeScript, if this an Object validator, then
this is the TS type of its property names.

#### Inherited from

BaseValidator.fieldPaths

***

### isOptional

• `Readonly` **isOptional**: `IsOptional`

Whether this is an optional Object property value validator.

#### Inherited from

BaseValidator.isOptional

***

### isBijectionValidator

• `Readonly` **isBijectionValidator**: `true`

Always `"true"`.

#### Inherited from

BaseValidator.isBijectionValidator

***

### members

• `Readonly` **members**: `T`

The array of validators, one of which must match the value.

***

### kind

• `Readonly` **kind**: `"union"`

The kind of validator, `"union"`.

## Methods

### optional

▸ **optional**(): [`VUnion`](/api/classes/values.VUnion)\<`undefined` | `Type`, `T`, `"optional"`, `FieldPaths`>

Allow this validated field to be absent.

#### Returns

[`VUnion`](/api/classes/values.VUnion)\<`undefined` | `Type`, `T`, `"optional"`, `FieldPaths`>

#### Overrides

BaseValidator.optional
