internal const hasOwnProperty = { } . hasOwnProperty ; internal const numberConstructor = ( 0 ) . constructor as NumberConstructor ; internal const isFinite = numberConstructor . isFinite ; internal const isInteger = numberConstructor . isInteger ; internal const isArray = ( [ ] . constructor as ArrayConstructor ) . isArray ; internal export function isObj ( x ) { return x !== null && typeof x === 'object' ; } internal export function isFn < T extends Function > ( x ) { return typeof x === 'function' ; } internal export function isStr ( x , minLength = 0 ) { return typeof x === 'string' && x . length >= minLength ; } internal export function isNum ( x ) { return isFinite ( x as number ) ; } internal export function isInt ( x ) { return isInteger ( x ) ; } internal export function isArr ( x ) { return isArray ( x ) ; } internal export function isProp < K extends string | number | symbol > ( x , propName ) { return isObj ( x ) && propName in x ; } internal export function isOwnProp < K extends string | number | symbol > ( x , propName ) { return isObj ( x ) && ( hasOwnProperty . call ( x , propName ) as boolean ) ; }