ut2 1.2.1 → 1.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +36 -35
- package/dist/ut2.js +440 -264
- package/dist/ut2.js.map +1 -1
- package/dist/ut2.min.js +1 -1
- package/dist/ut2.min.js.map +1 -1
- package/es/eq.js +3 -5
- package/es/index.js +30 -29
- package/es/internals/compare.js +23 -6
- package/es/internals/getTag.js +7 -9
- package/es/internals/helpers.js +4 -4
- package/es/internals/native.js +17 -1
- package/es/isArguments.js +1 -3
- package/es/isArrayBuffer.js +1 -3
- package/es/isEqual.js +185 -0
- package/es/isSafeInteger.js +1 -3
- package/es/isTypedArray.js +1 -15
- package/lib/eq.js +3 -5
- package/lib/index.js +60 -58
- package/lib/internals/compare.js +23 -6
- package/lib/internals/getTag.js +6 -8
- package/lib/internals/helpers.js +3 -3
- package/lib/internals/native.js +16 -0
- package/lib/isArguments.js +1 -3
- package/lib/isArrayBuffer.js +1 -3
- package/lib/isEqual.js +187 -0
- package/lib/isSafeInteger.js +1 -3
- package/lib/isTypedArray.js +1 -15
- package/package.json +1 -1
- package/types/difference.d.ts +1 -1
- package/types/eq.d.ts +2 -2
- package/types/index.d.ts +42 -41
- package/types/internals/helpers.d.ts +0 -1
- package/types/internals/native.d.ts +16 -0
- package/types/intersection.d.ts +1 -1
- package/types/isArguments.d.ts +1 -1
- package/types/isArray.d.ts +1 -1
- package/types/isArrayBuffer.d.ts +1 -1
- package/types/isArrayLike.d.ts +1 -1
- package/types/isArrayLikeObject.d.ts +1 -1
- package/types/isBlob.d.ts +1 -1
- package/types/isBoolean.d.ts +1 -1
- package/types/isBuffer.d.ts +1 -1
- package/types/isDataView.d.ts +1 -1
- package/types/isDate.d.ts +1 -1
- package/types/isElement.d.ts +1 -1
- package/types/isEmpty.d.ts +1 -1
- package/types/isEqual.d.ts +44 -0
- package/types/isError.d.ts +1 -1
- package/types/isFinite.d.ts +1 -1
- package/types/isFunction.d.ts +1 -1
- package/types/isInteger.d.ts +1 -1
- package/types/isLength.d.ts +1 -1
- package/types/isMap.d.ts +1 -1
- package/types/isNaN.d.ts +1 -1
- package/types/isNil.d.ts +1 -1
- package/types/isNull.d.ts +1 -1
- package/types/isNumber.d.ts +1 -1
- package/types/isObject.d.ts +1 -1
- package/types/isObjectLike.d.ts +1 -1
- package/types/isPlainObject.d.ts +1 -1
- package/types/isPromiseLike.d.ts +1 -1
- package/types/isRegExp.d.ts +1 -1
- package/types/isSafeInteger.d.ts +1 -1
- package/types/isSet.d.ts +1 -1
- package/types/isString.d.ts +1 -1
- package/types/isSymbol.d.ts +1 -1
- package/types/isTypedArray.d.ts +1 -1
- package/types/isUndefined.d.ts +1 -1
- package/types/isWeakMap.d.ts +1 -1
- package/types/isWeakSet.d.ts +1 -1
- package/types/union.d.ts +1 -1
- package/types/uniq.d.ts +1 -1
- package/types/xor.d.ts +1 -1
- package/es/internals/sameValue.js +0 -10
- package/lib/internals/sameValue.js +0 -12
- package/types/internals/sameValue.d.ts +0 -12
package/types/isElement.d.ts
CHANGED
package/types/isEmpty.d.ts
CHANGED
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
type Customizer = (objValue: any, othValue: any, key?: number | string | symbol, object?: any, other?: any, valueStack?: any[], otherStack?: any[]) => void | undefined | boolean;
|
|
2
|
+
/**
|
|
3
|
+
* 深度比较两个值是否相等。
|
|
4
|
+
*
|
|
5
|
+
* 支持比较 `boolean` `number` `string` `symbol` `array` `array buffer` `date` `error` `map` `object` `regexp` `set` `typed array` 类型。对象只比较自身的属性,不包括继承和不可枚举的属性。
|
|
6
|
+
*
|
|
7
|
+
* 如果 `strictCheck=true` , 以下值不相等:
|
|
8
|
+
*
|
|
9
|
+
* 1. `0` `-0`
|
|
10
|
+
* 2. `typeof` 不同类型,如 `1` `Object(1)`
|
|
11
|
+
* 3. 无效日期对象,如 `new Date('')` `new Date('abc')`
|
|
12
|
+
*
|
|
13
|
+
* @static
|
|
14
|
+
* @alias module:Language.isEqual
|
|
15
|
+
* @since 1.3.0
|
|
16
|
+
* @param {*} value 要比较的值。
|
|
17
|
+
* @param {*} other 另一个要比较的值。
|
|
18
|
+
* @param {Function} [customizer] 自定义比较。
|
|
19
|
+
* @param {boolean} [strictCheck=false] 严格比较,默认 `false` 。
|
|
20
|
+
* @returns {boolean} 如果两个值相等,返回 `true` ,否则返回 `false` 。
|
|
21
|
+
* @example
|
|
22
|
+
*
|
|
23
|
+
* const value = { a: 1, b: -0 }
|
|
24
|
+
* const other = { a: 1, b: 0 }
|
|
25
|
+
*
|
|
26
|
+
* isEqual(value, other); // true
|
|
27
|
+
* value === other // false
|
|
28
|
+
*
|
|
29
|
+
* // 严格比较
|
|
30
|
+
* isEqual(value, other, undefined, true); // false
|
|
31
|
+
*
|
|
32
|
+
* // 自定义比较
|
|
33
|
+
* function customizer(value, other){
|
|
34
|
+
* if(typeof value === 'string' && typeof other === 'string'){
|
|
35
|
+
* return true;
|
|
36
|
+
* }
|
|
37
|
+
* }
|
|
38
|
+
* isEqual('a', 'b', customizer); // true
|
|
39
|
+
* isEqual(['a'], ['b'], customizer); // true
|
|
40
|
+
* isEqual({foo: 'a'}, {foo: 'b'}, customizer); // true
|
|
41
|
+
*
|
|
42
|
+
*/
|
|
43
|
+
declare function isEqual(value: any, other: any, customizer?: Customizer, strictCheck?: boolean): boolean;
|
|
44
|
+
export default isEqual;
|
package/types/isError.d.ts
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* 继承自 `Error` 的对象,如 `EvalError` `RangeError` `ReferenceError` `SyntaxError` `TypeError` `URIError` `AggregateError`,都将返回 `true` 。
|
|
5
5
|
*
|
|
6
6
|
* @static
|
|
7
|
-
* @alias module:
|
|
7
|
+
* @alias module:Language.isError
|
|
8
8
|
* @since 1.0.0
|
|
9
9
|
* @param {*} value 要检查的值。
|
|
10
10
|
* @returns {boolean} 如果值为 `Error` 或 `DOMException` 对象,返回 `true` ,否则返回 `false` 。
|
package/types/isFinite.d.ts
CHANGED
package/types/isFunction.d.ts
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* `Function` `AsyncFunction` `GeneratorFunction` `Proxy` 都将返回 `true` 。
|
|
5
5
|
*
|
|
6
6
|
* @static
|
|
7
|
-
* @alias module:
|
|
7
|
+
* @alias module:Language.isFunction
|
|
8
8
|
* @since 1.0.0
|
|
9
9
|
* @param {*} value 要检查的值。
|
|
10
10
|
* @returns {boolean} 如果值为 `Function` 对象,返回 `true` ,否则返回 `false` 。
|
package/types/isInteger.d.ts
CHANGED
package/types/isLength.d.ts
CHANGED
package/types/isMap.d.ts
CHANGED
package/types/isNaN.d.ts
CHANGED
package/types/isNil.d.ts
CHANGED
package/types/isNull.d.ts
CHANGED
package/types/isNumber.d.ts
CHANGED
package/types/isObject.d.ts
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
* 检查值是否为对象。(例如,数组、函数、对象、正则表达式、new Number(0) 和 new String(''))。
|
|
3
3
|
*
|
|
4
4
|
* @static
|
|
5
|
-
* @alias module:
|
|
5
|
+
* @alias module:Language.isObject
|
|
6
6
|
* @since 1.0.0
|
|
7
7
|
* @see {@link https://tc39.es/ecma262/#sec-ecmascript-language-types | language type}
|
|
8
8
|
* @param {*} value 要检查的值。
|
package/types/isObjectLike.d.ts
CHANGED
package/types/isPlainObject.d.ts
CHANGED
package/types/isPromiseLike.d.ts
CHANGED
package/types/isRegExp.d.ts
CHANGED
package/types/isSafeInteger.d.ts
CHANGED
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
* 如果一个整数是一个 `IEEE-754` 双精度数字,它不是四舍五入的不安全整数的结果,那么它就是安全的。安全整数范围为 `-(2^53 - 1)` 到 `2^53 - 1` 之间的整数,包含 `-(2^53 - 1)` 和 `2^53 - 1`。
|
|
7
7
|
*
|
|
8
8
|
* @static
|
|
9
|
-
* @alias module:
|
|
9
|
+
* @alias module:Language.isSafeInteger
|
|
10
10
|
* @since 1.0.0
|
|
11
11
|
* @param {*} value 要检查的值。
|
|
12
12
|
* @returns {boolean} 如果值为安全整数,返回 `true` ,否则返回 `false` 。
|
package/types/isSet.d.ts
CHANGED
package/types/isString.d.ts
CHANGED
package/types/isSymbol.d.ts
CHANGED
package/types/isTypedArray.d.ts
CHANGED
package/types/isUndefined.d.ts
CHANGED
package/types/isWeakMap.d.ts
CHANGED
package/types/isWeakSet.d.ts
CHANGED
package/types/union.d.ts
CHANGED
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
* @param {Array} array 要检查的数组。
|
|
12
12
|
* @param {Array} [other=[]] 另一个要检查的数组。
|
|
13
13
|
* @param {Function | string} [iteratee] 迭代函数,调用每个元素。
|
|
14
|
-
* @param {boolean} [strictCheck=false] 严格比较,区分
|
|
14
|
+
* @param {boolean} [strictCheck=false] 严格比较,区分 `0` `-0`,默认 `false` 。
|
|
15
15
|
* @returns {Array} 新的联合数组。
|
|
16
16
|
* @example
|
|
17
17
|
*
|
package/types/uniq.d.ts
CHANGED
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
* @since 1.0.0
|
|
11
11
|
* @param {Array} array 要检查的数组。
|
|
12
12
|
* @param {Function | string} [iteratee] 迭代函数,调用每个元素。
|
|
13
|
-
* @param {boolean} [strictCheck=false] 严格比较,区分
|
|
13
|
+
* @param {boolean} [strictCheck=false] 严格比较,区分 `0` `-0`,默认 `false` 。
|
|
14
14
|
* @returns {Array} 去重后的新数组。
|
|
15
15
|
* @example
|
|
16
16
|
*
|
package/types/xor.d.ts
CHANGED
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
* @param {Array} array 要检查的数组。
|
|
12
12
|
* @param {Array} [other=[]] 另一个要检查的数组。
|
|
13
13
|
* @param {Function | string} [iteratee] 迭代函数,调用每个元素。
|
|
14
|
-
* @param {boolean} [strictCheck=false] 严格比较,区分
|
|
14
|
+
* @param {boolean} [strictCheck=false] 严格比较,区分 `0` `-0`,默认 `false` 。
|
|
15
15
|
* @returns {Array} 过滤值后的新数组。
|
|
16
16
|
* @example
|
|
17
17
|
*
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
import { objectIs } from './helpers.js';
|
|
2
|
-
|
|
3
|
-
function sameValue(value, other) {
|
|
4
|
-
if (typeof objectIs === 'function') {
|
|
5
|
-
return objectIs(value, other);
|
|
6
|
-
}
|
|
7
|
-
return value === other ? value !== 0 || 1 / value === 1 / other : value != value && other != other;
|
|
8
|
-
}
|
|
9
|
-
|
|
10
|
-
export { sameValue as default };
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
|
-
var helpers = require('./helpers.js');
|
|
4
|
-
|
|
5
|
-
function sameValue(value, other) {
|
|
6
|
-
if (typeof helpers.objectIs === 'function') {
|
|
7
|
-
return helpers.objectIs(value, other);
|
|
8
|
-
}
|
|
9
|
-
return value === other ? value !== 0 || 1 / value === 1 / other : value != value && other != other;
|
|
10
|
-
}
|
|
11
|
-
|
|
12
|
-
module.exports = sameValue;
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* 检查两个值是否相等。
|
|
3
|
-
*
|
|
4
|
-
* @private
|
|
5
|
-
* @see {@link https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Equality_comparisons_and_sameness | JavaScript 中的相等性判断}
|
|
6
|
-
* @see {@link https://tc39.es/ecma262/#sec-samevalue | SameValue}
|
|
7
|
-
* @param {*} value 要比较的值。
|
|
8
|
-
* @param {*} other 另一个要比较的值。
|
|
9
|
-
* @returns {boolean} 如果两个值相等返回 `true`, 否则返回 `false` 。
|
|
10
|
-
*/
|
|
11
|
-
declare function sameValue(value: any, other: any): boolean;
|
|
12
|
-
export default sameValue;
|