UNPKG

ut2

Version:

一个现代 JavaScript 实用工具库。[点击查看在线文档]。

44 lines (43 loc) 1.54 kB
import isEqualDeep from './internals/isEqualDeep'; /** * 深度比较两个值是否相等。 * * 支持比较 `boolean` `number` `string` `symbol` `array` `array buffer` `date` `error` `map` `object` `regexp` `set` `typed array` 类型。对象只比较自身的属性,不包括继承和不可枚举的属性。 * * 如果 `strictCheck=true`, 以下值不相等: * * 1. `0` `-0` * 2. `typeof` 不同类型,如 `1` `Object(1)` * 3. 无效日期对象,如 `new Date('')` `new Date('abc')` * * @alias module:Language.isEqual * @since 1.3.0 * @param {*} value 要比较的值。 * @param {*} other 另一个要比较的值。 * @param {Function} [customizer] 自定义比较。 * @param {boolean} [strictCheck=false] 严格比较。默认 `false` * @returns {boolean} 如果两个值相等,返回 `true`,否则返回 `false` * @example * * const value = { a: 1, b: -0 } * const other = { a: 1, b: 0 } * * isEqual(value, other); // true * value === other // false * * // 严格比较 * isEqual(value, other, undefined, true); // false * * // 自定义比较 * function customizer(value, other){ * if(typeof value === 'string' && typeof other === 'string'){ * return true; * } * } * isEqual('a', 'b', customizer); // true * isEqual(['a'], ['b'], customizer); // true * isEqual({foo: 'a'}, {foo: 'b'}, customizer); // true * */ declare function isEqual(value: any, other: any, customizer?: Parameters<typeof isEqualDeep>[2], strictCheck?: boolean): boolean; export default isEqual;