--- tags: zeta-dom --- # Predicates ### `either` A shorthand for `a ^ b` in TypeScript without need of casting. ```typescript either(a, b) ``` ### `is` Tests whether a given object is an instance of the specified function. ```typescript is(value, functionOrClass) ``` ### `isUndefinedOrNull` Tests whether a given value is `undefined` or `null`. ```typescript isUndefinedOrNull(value) ``` ### `isArray` Tests whether the value is an array. ```typescript isArray(obj) ``` ### `isFunction` Tests whether the value is a fuction. ```typescript isFunction(obj) ``` Returns the same instance of function if it is a function; otherwise `false`. ### `isThenable` Tests whether the value is thenable, i.e. can be chained as a Promise. ```typescript isThenable(obj) ``` Returns The same instance of function if it is thenable; otherwise `false`. ### `isPlainObject` Tests whether the value is a simple object, i.e. created with object literal {}, or with no prototype chain. ```typescript isPlainObject(obj) ``` Returns The same instance of object if it is a simple object; otherwise `false`. ### `isArrayLike`