UNPKG

ut2

Version:

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

44 lines (43 loc) 1.67 kB
type Customizer = (objValue: any, srcValue: any, key?: number | string | symbol, object?: any, source?: any, objStack?: any[], srcStack?: any[]) => void | boolean; /** * 执行一个深比较,确定 `object` 是否含有和 `source` 完全相等的属性值。 * * 注意:只有普通对象才会执行部分匹配,函数、数组不会执行部分匹配。 * * 如果 `strictCheck=true`, 以下值不相等: * * 1. `0` `-0` * 2. `typeof` 不同类型,如 `1` `Object(1)` * 3. 无效日期对象,如 `new Date('')` `new Date('abc')` * * @alias module:Language.isMatch * @since 1.4.0 * @requires module:Language.isEqual * @param {Object} object 要检查的对象。 * @param {Object} source 属性值相匹配的对象。 * @param {Function} [customizer] 自定义比较。 * @param {boolean} [strictCheck=false] 严格比较。默认 `false` * @returns {boolean} 如果 `object` 匹配,返回 `true`,否则返回 `false` * @example * * const object = { a: 1, b: -0 } * * isMatch(object, { a: 1 }); // true * isMatch(object, { b: 0 }); // true * * // 严格比较 * isMatch(object, { b: 0 }, undefined, true); // false * * // 自定义比较 * function customizer(objValue, srcValue){ * if(typeof objValue === 'string' && typeof srcValue === 'string'){ * return true; * } * } * isMatch({ foo: 'a' }, { foo: 'b' }, customizer); // true * isMatch({ foo: ['a'] }, { foo: ['b'] }, customizer); // true * isMatch({ foo: 'a' }, { foo: 'b' }, customizer); // true * */ declare function isMatch(object: object, source: object, customizer?: Customizer, strictCheck?: boolean): boolean; export default isMatch;