Table of contents

Properties

any

Validation that accepts any value. Generally this should be avoided, but you can use it as an escape hatch if you want to work without validations for e.g. a prototype.

any: Validator<any>

array

Validates that a value is an array. To check the contents of the array, use T.arrayOf.

array: Validator<unknown[]>

bigint

Validates that a value is a bigint.

bigint: Validator<bigint>

boolean

Validates that a value is boolean.

boolean: Validator<boolean>

httpUrl

Validates an http(s) url

httpUrl: Validator<string>

indexKey

Validates that a value is an IndexKey.

indexKey: Validator<IndexKey>

integer

Fails if number is not an integer

integer: Validator<number>

jsonValue

Validate that a value is valid JSON.

jsonValue: Validator<JsonValue>

linkUrl

Validates that a value is a url safe to use as a link.

linkUrl: Validator<string>

nonZeroInteger

Fails if value <= 0 and is not an integer

nonZeroInteger: Validator<number>

nonZeroNumber

Fails if value <= 0

nonZeroNumber: Validator<number>

number

Validates that a value is a finite non-NaN number.

number: Validator<number>

positiveInteger

Fails if value < 0 and is not an integer

positiveInteger: Validator<number>

positiveNumber

Fails if value < 0

positiveNumber: Validator<number>

srcUrl

Validates that a valid is a url safe to load as an asset.

srcUrl: Validator<string>

string

Validates that a value is a string.

string: Validator<string>

unknown

Validation that accepts any value. Useful as a starting point for building your own custom validations.

unknown: Validator<unknown>

unknownObject

unknownObject: Validator<Record<string, unknown>>

Methods

arrayOf()

Validates that a value is an array whose contents matches the passed-in validator.

function arrayOf<T>(itemValidator: Validatable<T>): ArrayOfValidator<T>

Parameters

NameDescription

itemValidator

Returns


dict()

Validation that an option is a dict with particular keys and values.

function dict<Key extends string, Value>(
  keyValidator: Validatable<Key>,
  valueValidator: Validatable<Value>
): DictValidator<Key, Value>

Parameters

NameDescription

keyValidator

valueValidator

Returns

DictValidator<Key, Value>

jsonDict()

Validate an object has a particular shape.

function jsonDict(): DictValidator<string, JsonValue>

literal()

Validates that a value matches another that was passed in.

function literal<T extends boolean | number | string>(
  expectedValue: T
): Validator<T>

Example

const trueValidator = T.literal(true)

Parameters

NameDescription

expectedValue

T

Returns


literalEnum()

function literalEnum<const Values extends readonly unknown[]>(
  ...values: Values
): Validator<Values[number]>

Parameters

NameDescription

values

Values

Returns

Validator<Values[number]>

model()

A named object with an ID. Errors will be reported as being part of the object with the given name.

function model<
  T extends {
    readonly id: string
  },
>(name: string, validator: Validatable<T>): Validator<T>

Parameters

NameDescription

name

string

validator

Returns


nullable()

function nullable<T>(validator: Validatable<T>): Validator<null | T>

Parameters

NameDescription

validator

Returns

Validator<null | T>

object()

Validate an object has a particular shape.

function object<Shape extends object>(config: {
  readonly [K in keyof Shape]: Validatable<Shape[K]>
}): ObjectValidator<MakeUndefinedOptional<Shape>>

Parameters

NameDescription

config

{
  readonly [K in keyof Shape]: Validatable<Shape[K]>
}

Returns

ObjectValidator<MakeUndefinedOptional<Shape>>

optional()

function optional<T>(validator: Validatable<T>): Validator<T | undefined>

Parameters

NameDescription

validator

Returns

Validator<T | undefined>

or()

Validate a value against one of two types.

function or<T1, T2>(
  v1: Validatable<T1>,
  v2: Validatable<T2>
): Validator<T1 | T2>

Parameters

NameDescription

v1

v2

Returns

Validator<T1 | T2>

setEnum()

function setEnum<T>(values: ReadonlySet<T>): Validator<T>

Parameters

NameDescription

values

ReadonlySet<T>

Returns


union()

Validate a union of several object types. Each object must have a property matching key which should be a unique string.

function union<
  Key extends string,
  Config extends UnionValidatorConfig<Key, Config>,
>(key: Key, config: Config): UnionValidator<Key, Config>

Example

const catValidator = T.object({ kind: T.literal('cat'), meow: T.boolean })
const dogValidator = T.object({ kind: T.literal('dog'), bark: T.boolean })
const animalValidator = T.union('kind', {
  cat: catValidator,
  dog: dogValidator,
})

Parameters

NameDescription

key

Key

config

Config

Returns

UnionValidator<Key, Config>

We use cookies on this website.
Learn more in our Cookie Policy.