UNPKG

keys-mapper

Version:

keys-mapper 是一个通过设置属性名字映射,就可将一个对象转换成另一个对象的工具;支持循环引用、反向映射、深度映射

71 lines (70 loc) 1.93 kB
export declare type Key = string | number | symbol; export declare type Keys = Key | Key[]; /** * 映射的 key * - null :表示删除当前 key * - undefined : 没有映射,相关于没有为该key设置映射 */ export declare type MapKey = Key | null | undefined; export declare type MapKeys = MapKey | MapKey[]; /** * 对象开式的key映射 */ export declare type KeyMapsObject = { [SK in Key]: MapKeys; }; /** * 数组开式的key映射 */ export declare type KeyMapsArray = [Keys, MapKeys][]; /** * key 映射 */ export declare type KeyMaps = KeyMapsObject | KeyMapsArray; /** * 将 KeyMaps 类型 转为 KeyMapsObject 类型 * @param keyMaps * @returns */ export declare function toKeyMapsObject(keyMaps: KeyMaps): KeyMapsObject; /** * 将 keyMaps1 和 keyMaps2 合并成一个 KeyMapsObject 对象 */ export declare function mergeKeyMaps(keyMaps1: KeyMaps, keyMaps2: KeyMaps): KeyMapsObject; /** * 将 keyMaps 反转 * @param keyMaps * @returns */ export declare function reverseKeyMaps(keyMaps: KeyMaps): KeyMapsArray; /** * 完成的回调函数 */ export declare type CompleteCB<V> = (copy: V) => void; /** * keysMapper 函数的配置选项 */ export interface KeysMapperOptions { maxDepth?: number | null | undefined; deleOther?: boolean | null | undefined; reverse?: boolean | null | undefined; keep?: boolean | null | undefined; array?: boolean; } export interface KeysMapper { /** * 键映射 */ (source: any, options?: KeysMapperOptions | null | undefined, keyMaps?: KeyMaps | null | undefined): any; /** * 预设的 KeyMapsObject */ presetKeyMapsObject: KeyMapsObject; } /** * 创建以 presetKeyMapsObject 为预设的 keysMapper() 函数 * @param presetKeyMapsObject * @returns */ export declare function createKeysMapper(presetKeyMapsObject?: KeyMapsObject): KeysMapper; export declare const keysMapper: KeysMapper;