deep-tls
Version:
deep-tls 提供了一些对数据进行深度操作的工具,如:深度相等测试、深度遍历、深拷贝等;其中,深拷贝deepCopy可对任意数据进行深度拷贝,包括 函数 function、正则 RegExp、Map、Set、Date、Array、URL 等等;支持含循环引用对象的拷贝,并且不会丢失成员的引用关系 和 类型信息,支持扩展,可根据数据类型定制拷贝逻辑,也可指定拷贝深度;所以,通过它可实现对任意类型的数据进行任意想要的拷贝
18 lines (17 loc) • 1.08 kB
TypeScript
/**
* isDeepEqual(a, b, nullNotEqualUndefined)
* 深度测试 a 和 b 是否完全相等;如果 a 和 b 是 对象,会进行递归相等测试,只有所有的属性 都相等时,才会认为是相等的;
*
* 注意:
* - 对于 值为 undefined 的属性 和 不存在的属性 认为是相等的属性;
* - 对于 对于 函数 ,如果整个函数的代码字符(fun.toString())串相等,则认为函数是相等的;
* - 目前只判断了 基础类型、Object、Array、function、Date、可迭代 类型;
* - 对于可迭代类型,必须迭代 索引 和 索引对应的值 都相等才认为是相等的;
*
* @param a : any
* @param b : any
* @param nullNotEqualUndefined ? : boolean 可选;默认值:false; 是否把 null 和 undefined 作为不等的值来对待
* @param strict ? : boolean 可选;默认值:false; 是否使用严格相等来对 基本类型的值 进行比较
* @return boolean
*/
export declare function isDeepEqual(a: any, b: any, nullNotEqualUndefined?: boolean, strict?: boolean): boolean;