@mt-kit/utils
Version:
17 lines (16 loc) • 538 B
TypeScript
/**
* 深拷贝
*
* @param value
* @param map 外部使用的时候,不需要传入
* @return value
*
* 对所有类型都进行了拷贝
*
* lodashjs、underscorejs 对函数、Symbol、Set、Map 等没做深拷贝处理
*
* 不建议使用:JSON.parse(JSON.stringify(value)); 它存在以下缺陷(案例见 ../stories/demo-clone-deep.html):
* ① 无法解析 Symbol 作为 key 或者 value
* ② 无法循环引用
*/
export default function cloneDeep<T>(value: T | symbol, map?: WeakMap<object, any>): T | {};