const { toString } = Object.prototype export function is(val: unknown, type: string) { return toString.call(val) === `[object ${type}]` } export function isDef(val?: T): val is T { return typeof val !== 'undefined' } export function isUnDef(val?: T): val is T { return !isDef(val) } export function isNull(val: unknown): val is null { return val === null } export function isNullOrUnDef(val: unknown): val is null | undefined { return isUnDef(val) || isNull(val) } export function isBoolean(val: unknown): val is boolean { return is(val, 'Boolean') }