diff --git a/packages/core/src/types.ts b/packages/core/src/types.ts index bb1927c..abaeb28 100644 --- a/packages/core/src/types.ts +++ b/packages/core/src/types.ts @@ -1,18 +1,35 @@ +/** + * check if value is null + * @param val value + * @returns true/false + */ +export function isNull(val: any): value is null { + return val === null; +} + /** * check if value is undefined * @param val value * @returns true/false */ -export function isUndef(val: unknown): val is undefined { - return val === void 0; +export function isUndefined(val: any): val is undefined { + return typeof val === 'undefined'; } +/** + * alias to isUndefined + * @deprecated Use `isUndefined` instead. This alias may cause confusion due to inconsistent naming conventions. + * @param val value + * @returns true/false + */ +export const isUndef = isUndefined; + /** * check if value is a array * @param val value * @returns true/false */ -export function isArray(val: unknown): val is any[] { +export function isArray(val: any): val is T[] { return Array.isArray(val); } @@ -21,7 +38,7 @@ export function isArray(val: unknown): val is any[] { * @param val value * @returns true/false */ -export function isObject(val: unknown): val is Record { +export function isObject(val: any): val is T { return val !== null && typeof val === 'object'; } @@ -31,16 +48,25 @@ const toString = (x: any) => Object.prototype.toString.call(x); * @param val value * @returns true/false */ -export function isPlainObject(val: unknown): val is Record { +export function isPlainObject(val: any): val is T { return toString(val) === '[object Object]'; } +/** + * check if value is a date + * @param val value + * @returns true/false + */ +export function isDate(val: any): val is Date { + return toString(val) === '[object Date]'; +} + /** * check if value is a function * @param val value * @returns true/false */ -export function isFunction(val: unknown): val is Function { +export function isFunction(val: any): val is T { return typeof val === 'function'; }