UNPKG

@gby/deep-copy

Version:

deep-copy 深拷贝,可对任意数据进行深度拷贝,包括 函数 function、正则 RegExp、Map、Set、Date、Array、URL 等等;支持含循环引用对象的拷贝,并且不会丢失成员的引用关系 和 类型信息,支持扩展,可根据数据类型定制拷贝逻辑,也可指定拷贝深度;所以,通过它可实现对任意类型的数据进行任意想要的拷贝

30 lines (29 loc) 998 B
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;