|
|
1 سال پیش | |
|---|---|---|
| .. | ||
| dist | 1 سال پیش | |
| src | 1 سال پیش | |
| LICENSE | 1 سال پیش | |
| README.md | 1 سال پیش | |
| package.json | 1 سال پیش | |
Lightweight type check tool.
Typescript ready with type guards to infer the correct type inside conditionals.
npm install is-lite
import is from 'is-lite';
is('value'); // string
is.string('value'); // true
You can also import any checker individually since 1.0
import { isString } from 'is-lite/exports';
isString('value'); // true
is(value)
Returns the type of the value.
Primitives are lowercase: bigint, boolean, null, number, string, symbol, undefined.
The rest are camelcase: Array, Function, GeneratorFunction, Object, ...
is.array(value)
is.arrayOf(target: any[], predicate: (value: unknown) => boolean)
Check if all items in an array are of the same type.
is.arrayOf(['a', 'b'], is.string); // true
is.arrayOf([123, 456], is.nnumber); // true
is.arrayOf(['a', 1], is.string); // false
is.asyncFunction(value)
Check if the value is an async function that can be called with await.
is.asyncFunction(async () => {}); // true
is.asyncFunction(() => {}); // false
is.asyncGeneratorFunction(value)
is.bigint(value)
is.boolean(value)
is.date(value)
is.defined(value)
Check if the value is anything but undefined.
is.domElement(value)
Check if the value is a DOM Element.
is.empty(value)
Returns true if:
string, and the length is 0Object and Object.keys(value).length is 0Array, and the length is 0Map, and the size is 0Set, and the size is 0is.error(value)
is.function(value)
is.generator(value)
Check for an object that has its own .next() and .throw() methods and has a function definition for Symbol.iterator
is.generatorFunction(value)
is.instanceOf(value, class)
Check if the value is a direct instance of the class.
class APIError extends Error {}
const error = new APIError('Fail');
is.instanceOf(error, APIError); // true
is.instanceOf(error, Error); // false
is.iterable(value)
is.map(value)
is.nan(value)
is.null(value)
is.nullOrUndefined(value)
is.number(value)
Note: is.number(NaN) returns false
is.numericString(value)
Check for a string that represents a number.
is.numericString('42'); // true
is.numericString('-5'); // true
is.numericString('Inifinity'); // true
is.numericString('NaN'); // true
is.plainFunction(value)
Check if the value is a function (it doesn't include async and generator functions)
is.primitive(value)
is.object(value)
Remember that functions and arrays are objects too.
is.oneOf(target: any[], value: any)
Check if the value exists in the target
const colors = ['red', 'green', 'blue'];
is.oneOf(colors, 'green'); // true
is.oneOf(colors, 'brown'); // false
is.plainObject(value)
Check if the object is created by either {}, new Object() or Object.create(null).
is.promise(value)
is.propertyOf(target: object, key: string, predicate?: (value: unknown) => boolean)
Check if the key exists in the target. If you pass a predicate function, it will check the value's type.
const map = { items: [1], isLogged: false, retries: 0 };
is.propertyOf(map, 'retries'); // true
is.propertyOf(map, 'auth'); // false
is.propertyOf(map, 'retries', is.number); // true
is.propertyOf(map, 'items', is.array); // true
is.propertyOf(map, 'isLogged', is.string); // false
is.regexp(value)
is.set(value)
is.string(value)
is.symbol(value)
is.undefined(value)
is.weakMap(value)
is.weakSet(value)
Contributions, issues, and feature requests are welcome!
Feel free to check the issues page.
Give a ⭐️ if this project helped you!
Copyright © 2019 Gil Barbara gilbarbara@gmail.com.
This project is MIT licensed.
@sindresorhus/is is fantastic, but I needed something even smaller (and simpler). This package covers the basics and is just 1k minified+gzipped.
If you need to support legacy browsers, the Number.isNaN polyfill is required.