@gby/deep-copy
Version:
deep-copy 深拷贝,可对任意数据进行深度拷贝,包括 函数 function、正则 RegExp、Map、Set、Date、Array、URL 等等;支持含循环引用对象的拷贝,并且不会丢失成员的引用关系 和 类型信息,支持扩展,可根据数据类型定制拷贝逻辑,也可指定拷贝深度;所以,通过它可实现对任意类型的数据进行任意想要的拷贝
30 lines (29 loc) • 998 B
TypeScript
import type { TypeRevivers, TypeReviverMap } from "type-reviver";
import type { OptionalBoolean } from "type-tls";
import type { Copier } from "./public";
/**
* deepCopy 函数的配置选项
*/
export interface DeepCopyOptions {
maxDepth?: number | null | undefined;
allOwnProps?: OptionalBoolean;
copyFun?: OptionalBoolean;
}
export interface DeepCopy {
/**
* 深拷贝
* @param value
*/
<V>(value: V, options?: DeepCopyOptions | null | undefined, typeCopyers?: TypeRevivers<Copier> | null | undefined): V;
/**
* 预设的 TypeCopierMap
*/
presetTypeCopierMap: TypeReviverMap<Copier>;
}
/**
* 默认 Copier 的 TypeName
*/
export declare const typeNameOfDefaultCopier = "default";
export declare function createDeepCopy(presetTypeCopierMap?: TypeReviverMap<Copier> | null | undefined): DeepCopy;
export declare const defaultPresetTypeCopierMap: Map<import("type-reviver").Types, Copier<any, any>>;
export declare const deepCopy: DeepCopy;