com-tools
Version:
com-tools 提供了一些通用的工具函数;
123 lines • 3.95 kB
TypeScript
/**
* 获取成员值
* @param target - 目标对象
* @param propPath - 属性路径
* @returns 成员值
*/
export declare function getMember(target: any, propPath: PropertyKey[]): any;
/**
* 设置成员值
* @remarks
* 对于数字类型的路径,会使用数组作该属性所属的对象
* @param target - 目标对象
* @param propPath - 属性路径
* @param value
*/
export declare function setMember(target: any, propPath: PropertyKey[], value: any): void;
/**
* 获得默认值
*/
export type GetDefaultValue = () => any;
/**
* 获取成员值
* @param target
* @param propPath
* @param defaultValue
* @returns
*/
export declare function getMemberWithDefault(target: any, propPath: PropertyKey[], defaultValue?: GetDefaultValue | any): any;
/**
* 获取成员值
* @param target
* @param propPath
* @param defaultValue
* @returns 如果 defaultValue 返回的是 Promise ,则该函数也返回 Promise,其它
*/
export declare function getMemberWithAsyncDefault(target: any, propPath: PropertyKey[], defaultValue?: GetDefaultValue | any): any;
/**
* 删除成员
* @param target - 目标对象
* @param propPath - 属性路径
* @returns 是否执行了删除操作
*/
export declare function deleteMember(target: any, propPath: PropertyKey[]): boolean;
/**
* 移除根级 undefined 属性
* @param obj
* @returns
*/
export declare function removeUndefined(obj: any): any;
/**
* 移除根级 undefined 和 null 属性
* @param obj
* @returns
*/
export declare function removeNull(obj: any): any;
/**
* 提取根级成员
* @param obj
* @param keys
* @returns 返回一个只包含指定key的新对象
*/
export declare function pickMembers<Obj = any, Key extends keyof Obj = keyof Obj>(obj: Obj, keys: Key[]): Pick<Obj, Key>;
/**
* 剔除根级成员,删除根级成员
* @remarks
* 会改变原对象
* @param obj
* @param keys
* @returns 返回原来的对象,但删除了指定的成员
*/
export declare function omitMembers<Obj = any, Key extends keyof Obj = keyof Obj>(obj: Obj, keys: Key[]): Omit<Obj, Key>;
/**
* 通过属性路径提取成员
* @param obj
* @param propPaths
* @returns 返回一个只包含指定key的新对象
*/
export declare function pickMembersByPath(obj: any, propPaths: PropertyKey[][]): any;
/**
* 通过属性路径剔除成员,删除成员
* @remarks
* 会改变原对象
* @param obj
* @param propPaths
* @returns 返回原来的对象,但删除了指定的成员
*/
export declare function omitMembersByPath(obj: any, propPaths: PropertyKey[][]): any;
/**
* 将路径数组转成路径字符串
* @remarks
* 会自动将数组尾部的空值给移除,中间的空值转为占位符 placeholder
* @param path 路径数组
* @param separator 分隔符,默认是 "/"
* @param placeholder 占位符,默认是 "-"
* @returns
*/
export declare function pathString(path: (string | number | null | undefined)[], separator?: string | null, placeholder?: string | null): string;
/**
* 获取路径的第 index + 1 个部件
* @param path - 路径字符串
* @param index - 部件的索引
* @param separator - 路径的分隔符
* @returns
*/
export declare function getPathPart(path: string, index: number, separator?: string): string;
/**
* 替换路径部件
* @param path - 路径
* @param index - 被替换的部件的索引
* @param replace - 替换的内容
* @param separator - 路径的分隔符
* @returns
*/
export declare function replacePathPart(path: string, index: number, replace: string, separator?: string): string;
/**
* 获取所有路径的第 index + 1 个的有效部件,会过滤掉为空的部件
* @param paths - 路径字符串数组
* @param index - 部件的索引
* @param separator - 路径的分隔符
* @returns
*/
export declare function getValidPathParts(paths: string[], index: number, separator?: string): string[];
//# sourceMappingURL=prop-path.d.ts.map