28 lines
537 B
JavaScript
28 lines
537 B
JavaScript
import { curry } from './curry.js'
|
|
/**
|
|
* @typedef {'string' | 'number' | 'bigint' | 'boolean' | 'symbol' | 'undefined' | 'object' | 'function'} TypeOfValue
|
|
*/
|
|
|
|
/**
|
|
* @template T
|
|
* @param {T} x
|
|
* @returns {TypeOfValue}
|
|
*/
|
|
export const type = x => typeof x
|
|
|
|
export const is = curry(
|
|
/**
|
|
* @template T
|
|
* @param {FunctionConstructor} ctr
|
|
* @param {T} x
|
|
*/
|
|
(ctr, x) => x.constructor === ctr)
|
|
|
|
/**
|
|
* @template T
|
|
* @param {T} x
|
|
*/
|
|
export const isFn = x => type(x) === 'function'
|
|
|
|
export const isArray = Array.isArray
|
|
|