is-what
- Version 4.1.16
- Published
- 45.1 kB
- No dependencies
- MIT license
Install
npm i is-what
yarn add is-what
pnpm add is-what
Overview
JS type check (TypeScript supported) functions like `isPlainObject() isArray()` etc. A simple & small integration.
Index
Functions
- getType()
- isAnyObject()
- isArray()
- isBlob()
- isBoolean()
- isDate()
- isEmptyArray()
- isEmptyObject()
- isEmptyString()
- isError()
- isFile()
- isFullArray()
- isFullObject()
- isFullString()
- isFunction()
- isInstanceOf()
- isMap()
- isNaNValue()
- isNegativeNumber()
- isNull()
- isNullOrUndefined()
- isNumber()
- isObject()
- isObjectLike()
- isOneOf()
- isPlainObject()
- isPositiveNumber()
- isPrimitive()
- isPromise()
- isRegExp()
- isSet()
- isString()
- isSymbol()
- isType()
- isUndefined()
- isWeakMap()
- isWeakSet()
Type Aliases
Functions
function getType
getType: (payload: any) => string;
Returns the object type of the given payload
Parameter payload
Returns
{string}
function isAnyObject
isAnyObject: (payload: any) => payload is PlainObject;
Returns whether the payload is an any kind of object (including special classes or objects with different prototypes)
Parameter payload
Returns
{payload is PlainObject}
function isArray
isArray: (payload: any) => payload is any[];
Returns whether the payload is an array
Parameter payload
Returns
{payload is any[]}
function isBlob
isBlob: (payload: any) => payload is Blob;
Returns whether the payload is a Blob
Parameter payload
Returns
{payload is Blob}
function isBoolean
isBoolean: (payload: any) => payload is boolean;
Returns whether the payload is a boolean
Parameter payload
Returns
{payload is boolean}
function isDate
isDate: (payload: any) => payload is Date;
Returns whether the payload is a Date, and that the date is valid
Parameter payload
Returns
{payload is Date}
function isEmptyArray
isEmptyArray: (payload: any) => payload is [];
Returns whether the payload is a an empty array
Parameter payload
Returns
{payload is []}
function isEmptyObject
isEmptyObject: ( payload: any) => payload is { [x: string]: never; [x: number]: never; [x: symbol]: never };
Returns whether the payload is a an empty object (excluding special classes or objects with other prototypes)
Parameter payload
Returns
{payload is { [K in any]: never }}
function isEmptyString
isEmptyString: (payload: any) => payload is string;
Returns whether the payload is ''
Parameter payload
Returns
{payload is string}
function isError
isError: (payload: any) => payload is Error;
Returns whether the payload is an Error
Parameter payload
Returns
{payload is Error}
function isFile
isFile: (payload: any) => payload is File;
Returns whether the payload is a File
Parameter payload
Returns
{payload is File}
function isFullArray
isFullArray: (payload: any) => payload is any[];
Returns whether the payload is a an array with at least 1 item
Parameter payload
Returns
{payload is any[]}
function isFullObject
isFullObject: (payload: any) => payload is PlainObject;
Returns whether the payload is a an empty object (excluding special classes or objects with other prototypes)
Parameter payload
Returns
{payload is PlainObject}
function isFullString
isFullString: (payload: any) => payload is string;
Returns whether the payload is a string, BUT returns false for ''
Parameter payload
Returns
{payload is string}
function isFunction
isFunction: (payload: any) => payload is AnyFunction;
Returns whether the payload is a function (regular or async)
Parameter payload
Returns
{payload is AnyFunction}
function isInstanceOf
isInstanceOf: { <T extends AnyClass>(value: unknown, class_: T): value is T; <K extends GlobalClassName>( value: unknown, className: K ): value is (typeof globalThis)[K]; (value: unknown, className: string): value is object;};
Checks if a value is an instance of a class or a class name. Useful when you want to check if a value is an instance of a class that may not be defined in the current scope. For example, if you want to check if a value is an
OffscreenCanvas
instance, you might not want to do the song and dance of usingtypeof OffscreenCanvas !== 'undefined'
and then shimmingOffscreenCanvas
if the types aren't around.Parameter value
The value to recursively check
Parameter class_
A string or class that the value should be an instance of
Example 1
if (isInstanceOf(value, 'OffscreenCanvas')) { // value is an OffscreenCanvas }
function isMap
isMap: (payload: any) => payload is Map<any, any>;
Returns whether the payload is a Map
Parameter payload
Returns
{payload is Map<any, any>}
function isNaNValue
isNaNValue: (payload: any) => payload is number;
Returns whether the payload is literally the value
NaN
(it'sNaN
and also anumber
)Parameter payload
Returns
{payload is typeof NaN}
function isNegativeNumber
isNegativeNumber: (payload: any) => payload is number;
Returns whether the payload is a negative number (but not 0)
Parameter payload
Returns
{payload is number}
function isNull
isNull: (payload: any) => payload is null;
Returns whether the payload is null
Parameter payload
Returns
{payload is null}
function isNullOrUndefined
isNullOrUndefined: (payload: any) => payload is null;
Returns true whether the payload is null or undefined
Parameter payload
Returns
{(payload is null | undefined)}
function isNumber
isNumber: (payload: any) => payload is number;
Returns whether the payload is a number (but not NaN)
This will return
false
forNaN
!!Parameter payload
Returns
{payload is number}
function isObject
isObject: (payload: any) => payload is PlainObject;
Returns whether the payload is a plain JavaScript object (excluding special classes or objects with other prototypes)
Parameter payload
Returns
{payload is PlainObject}
function isObjectLike
isObjectLike: <T extends PlainObject>(payload: any) => payload is T;
Returns whether the payload is an object like a type passed in < >
Usage: isObjectLike<{id: any}>(payload) // will make sure it's an object and has an
id
prop.T This must be passed in < >
Parameter payload
Returns
{payload is T}
function isOneOf
isOneOf: { <A, B extends A, C extends A>(a: TypeGuard<A, B>, b: TypeGuard<A, C>): TypeGuard< A, B | C >; <A, B extends A, C extends A, D extends A>( a: TypeGuard<A, B>, b: TypeGuard<A, C>, c: TypeGuard<A, D> ): TypeGuard<A, B | C | D>; <A, B extends A, C extends A, D extends A, E extends A>( a: TypeGuard<A, B>, b: TypeGuard<A, C>, c: TypeGuard<A, D>, d: TypeGuard<A, E> ): TypeGuard<A, B | C | D | E>; <A, B extends A, C extends A, D extends A, E extends A, F extends A>( a: TypeGuard<A, B>, b: TypeGuard<A, C>, c: TypeGuard<A, D>, d: TypeGuard<A, E>, e: TypeGuard<A, F> ): TypeGuard<A, B | C | D | E | F>;};
A factory function that creates a function to check if the payload is one of the given types.
Example 1
import { isOneOf, isNull, isUndefined } from 'is-what'
const isNullOrUndefined = isOneOf(isNull, isUndefined)
isNullOrUndefined(null) // true isNullOrUndefined(undefined) // true isNullOrUndefined(123) // false
function isPlainObject
isPlainObject: (payload: any) => payload is PlainObject;
Returns whether the payload is a plain JavaScript object (excluding special classes or objects with other prototypes)
Parameter payload
Returns
{payload is PlainObject}
function isPositiveNumber
isPositiveNumber: (payload: any) => payload is number;
Returns whether the payload is a positive number (but not 0)
Parameter payload
Returns
{payload is number}
function isPrimitive
isPrimitive: (payload: any) => payload is string | number | boolean | symbol;
Returns whether the payload is a primitive type (eg. Boolean | Null | Undefined | Number | String | Symbol)
Parameter payload
Returns
{(payload is boolean | null | undefined | number | string | symbol)}
function isPromise
isPromise: (payload: any) => payload is Promise<any>;
Returns whether the payload is a Promise
Parameter payload
Returns
{payload is Promise}
function isRegExp
isRegExp: (payload: any) => payload is RegExp;
Returns whether the payload is a regular expression (RegExp)
Parameter payload
Returns
{payload is RegExp}
function isSet
isSet: (payload: any) => payload is Set<any>;
Returns whether the payload is a Set
Parameter payload
Returns
{payload is Set}
function isString
isString: (payload: any) => payload is string;
Returns whether the payload is a string
Parameter payload
Returns
{payload is string}
function isSymbol
isSymbol: (payload: any) => payload is symbol;
Returns whether the payload is a Symbol
Parameter payload
Returns
{payload is symbol}
function isType
isType: <T extends AnyFunction | AnyClass>( payload: any, type: T) => payload is T;
Does a generic check to check that the given payload is of a given type. In cases like Number, it will return true for NaN as NaN is a Number (thanks javascript!); It will, however, differentiate between object and null
T
Parameter payload
Parameter type
Returns
{payload is T}
Throws
{TypeError} Will throw type error if type is an invalid type
function isUndefined
isUndefined: (payload: any) => payload is undefined;
Returns whether the payload is undefined
Parameter payload
Returns
{payload is undefined}
function isWeakMap
isWeakMap: (payload: any) => payload is WeakMap<any, any>;
Returns whether the payload is a WeakMap
Parameter payload
Returns
{payload is WeakMap<any, any>}
function isWeakSet
isWeakSet: (payload: any) => payload is WeakSet<any>;
Returns whether the payload is a WeakSet
Parameter payload
Returns
{payload is WeakSet}
Type Aliases
type AnyAsyncFunction
type AnyAsyncFunction = (...args: any[]) => Promise<any>;
type AnyClass
type AnyClass = new (...args: any[]) => any;
type AnyFunction
type AnyFunction = (...args: any[]) => any;
type PlainObject
type PlainObject = Record<string | number | symbol, any>;
Package Files (1)
Dependencies (0)
No dependencies.
Dev Dependencies (15)
Peer Dependencies (0)
No peer dependencies.
Badge
To add a badge like this oneto your package's README, use the codes available below.
You may also use Shields.io to create a custom badge linking to https://www.jsdocs.io/package/is-what
.
- Markdown[![jsDocs.io](https://img.shields.io/badge/jsDocs.io-reference-blue)](https://www.jsdocs.io/package/is-what)
- HTML<a href="https://www.jsdocs.io/package/is-what"><img src="https://img.shields.io/badge/jsDocs.io-reference-blue" alt="jsDocs.io"></a>
- Updated .
Package analyzed in 4576 ms. - Missing or incorrect documentation? Open an issue for this package.