ECMAScript Identifier.
Immutable JSON value.
Immutable JSON scalar.
Immutable JSON array.
Immutable JSON object.
A value or a function returning a value.
The eager counterpart of a Lazy reference.
A type guard function.
Extracts the guarded type from an array of type guards.
Extracts the intersection of guarded types from an array of type guards.
Checks if a value is not undefined.
Checks if a value is a valid Identifier.
Checks if a value is a symbol.
Checks if a value is a function.
Checks if a value is an Error instance.
Checks if a value is a RegExp instance.
Checks if a value is a Date instance.
Checks if a value is a promise.
Checks if a value is iterable.
Checks if a value is async iterable.
Checks if a value is a valid JSON value.
Checks if a value is null.
Checks if a value is a JSON scalar.
Checks if a value is a boolean.
Checks if a value is a finite number.
Checks if a value is a string.
Checks if a value is an array.
Checks if a value is a plain object.
Checks if a value is a Lazy reference.
Checks if a value is an Eager reference.
Wildcard type guard that always succeeds.
Checks if a value is either undefined or satisfies a type guard.
Checks if a value matches one of the specified literal values.
Checks if a value satisfies any of the provided type guards.
Checks if a value satisfies all the provided type guards.
Core utility types and type guards.
Bridges the gap between TypeScript's static type system and untrusted runtime data. Every guard returns a boolean and narrows its argument on success, so validation and type inference collapse into a single call at API boundaries, deserialisation sites, and other trust-crossing points.
Primitives and built-ins
Guards for language-level values and host objects.
JSON values
Complete coverage of the JSON data model: the recursive Value type, its Scalar leaves, and structural guards for arrays and objects. isArray and isObject validate shape in depth through element predicates or tuple/template descriptors; object templates are closed by default, with the key wildcard turning them open.
Deferred values
isLazy admits values supplied either eagerly or as no-arg factories; isEager is its dual, rejecting factories and accepting only plain values. Paired with the Lazy / Eager type operators.
Composable type guards
Higher-order guards that combine primitive ones into arbitrary type expressions: isUnion for
A | B, isIntersection forA & B, isOptional forT | undefined, and isLiteral for literal and enum-like sets. isAny acts as a wildcard that always succeeds, typically used as a placeholder inside templates.