Learn more  » Push, build, and install  RubyGems npm packages Python packages Maven artifacts PHP packages Go Modules Bower components Debian packages RPM packages NuGet packages

skava / exotic   js

Repository URL to install this package:

Version: 2.0.8 

/ src / types / obj / check / isObjNotNull.ts

import { isNil } from '../../primitive/nil'
import isObjTypeof from './isObjTypeof'

export type Obj<ValueType = any> = {
  [key: string]: ValueType
  [key: number]: ValueType
}

/**
 * name says it all
 *
 * @param {*} x value
 * @return {boolean} isObjNotNull
 *
 * @since 3.0.0
 * @memberOf is
 * @func isObjNotNull
 * @alias isObjectLike
 * @alias isObjectNotNull
 *
 * {@link https://github.com/lodash/lodash/blob/master/isObjectLike.js lodash-is-object-like}
 * {@link https://github.com/sindresorhus/is-obj/blob/master/index.js is-obj}
 * @see is/obj
 * @see is/objWithKeys
 * @see is/objTypeof
 * @see is/null
 * @see {@link is-obj}
 * @see {@link lodash-is-object-like}
 *
 * @TODO !Array.isArray
 *
 * @extends isObjTypeof
 * @variation null will not count as an object
 *
 * @example
 *
 *  isObjNotNull(new Object())
 *  //=> true
 *  isObjNotNull({})
 *  //=> true
 *  isObjNotNull(Object.create(null))
 *  //=> true
 *  isObjNotNull(null)
 *  //=> false
 *
 *  isObjNotNull(new Set())
 *  //=> false
 *  isObjNotNull(function() {})
 *  //=> false
 *  isObjNotNull('')
 *  //=> false
 *  isObjNotNull(1)
 *  //=> false
 *
 */
const isObjNotNull = <Type = any>(x: unknown): x is Obj<Type> => !isNil(x) && isObjTypeof(x)

export { isObjNotNull }
export default isObjNotNull