Type guards for runtime JavaScript types and protocols.
import { isDefined, isEmpty, isFunction, isPromise, isIterable } from '@metreeca/core';
if (isDefined<T>(value)) {
// value is T
}
and define T
isEmpty({}); // true
isEmpty([]); // true
isFunction(() => {}); // true
isPromise(Promise.resolve(42)); // true
isIterable([1, 2, 3]); // true
Checks if a value is not undefined or null.
Checks if a value is an empty plain object or an empty array.
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 promise.
Checks if a value is iterable.
Checks if a value is async iterable.
Type guards for JSON-like values and data structures.
import { isBoolean, isNumber, isString, isObject, isArray } from '@metreeca/core';
isBoolean(true); // true
isNumber(42); // true (excludes NaN, Infinity)
isString('hello'); // true
isObject({ a: 1 }); // true
isObject(new Date()); // false
isArray([1, 2, 3], isNumber); // true
isArray([1, 'two'], isNumber); // false
Safe casts for JSON-like primitive values and data structures, returning undefined instead of throwing.
import { asNumber, asString, asObject, asArray } from '@metreeca/core';
asNumber(42); // 42
asNumber('42'); // undefined
Retrieves a value as a boolean if it is one, otherwise returns undefined.
Retrieves a value as a number if it is one, otherwise returns undefined.
Retrieves a value as a string if it is one, otherwise returns undefined.
Retrieves a value as a plain object if it is one, otherwise returns undefined.
Retrieves a value as an array if it is one, otherwise returns undefined.
Runtime/value type guards, safe casts, deep equality and immutability, error utilities.