import { gPartial } from './Types'; /** * ObjectUtils.assignDeep 中 转换结果的函数定义 */ interface AssignDeepHandler { /** * * @param target 目标对象 * @param source 源数据 * @param key 属性名称 * @param replacers 转换函数 * @param deep 当前深度 */ (target: any, source: any, key: string, replacers: AssignDeepHandler[], deep: number): boolean; } export declare class ObjectUtils { /** * 判断是否为基础类型 undefined,null,boolean,string,number */ static isBaseType(object: any): boolean; /** * 执行方法 * * 用例: * 1. 给一个新建的对象进行初始化 * * ``` startLifetime = ObjectUtils.runFunc(new MinMaxCurve(), (obj) => { obj.mode = MinMaxCurveMode.Constant; (obj.minMaxCurve).value = 5; }); ``` * * @param obj 对象 * @param func 被执行的方法 */ static runFunc(obj: T, func: (obj: T) => void): T; /** * 判断是否为Object对象,构造函数是否为Object, 检测 ObjectUtils.constructor === Object * * @param object 用于判断的对象 */ static isObject(object: any): boolean; /** * 获取对象对应属性上的值 * * @param object 对象 * @param property 属性名称,可以是 "a" 或者 "a.b" 或者 ["a","b"] */ static getPropertyValue(object: any, property: string | string[]): any; /** * 获取对象上属性链列表 * * 例如 object值为{ a: { b: { c: 1 }, d: 2 } }时则返回 ["a.b.c","a.d"] * * @param object 对象 */ static getPropertyChains(object: any): string[]; /** * 浅赋值 * 从源数据取所有可枚举属性值赋值给目标对象 * * @param target 目标对象 * @param source 源数据 */ static assignShallow(target: T, source: Partial): T; /** * 深度赋值 * 从源数据取所有子代可枚举属性值赋值给目标对象 * * @param target 被赋值对象 * @param source 源数据 * @param handlers 处理函数列表,先于 ObjectUtils.assignDeepDefaultHandlers 执行。函数返回值为true表示该属性赋值已完成跳过默认属性赋值操作,否则执行默认属性赋值操作。执行在 ObjectUtils.DefaultAssignDeepReplacers 前。 * @param deep 赋值深度,deep<1时直接返回。 */ static assignDeep(target: T, source: gPartial, handlers?: AssignDeepHandler[], deep?: number): T; /** * 深度比较两个对象子代可枚举属性值 * * @param a 第一个对象 * @param b 第二个对象 */ static equalDeep(a: T, b: T): boolean; /** * 判断对象是否为null或者undefine * * @param obj * @returns */ static objectIsEmpty(obj: any): boolean; /** * 从对象自身或者对象的原型中获取属性描述 * * @param object 对象 * @param property 属性名称 */ static getPropertyDescriptor(object: any, property: string): PropertyDescriptor | undefined; /** * 属性是否可写 * @param obj 对象 * @param property 属性名称 */ static propertyIsWritable(obj: any, property: string): boolean; /** * ObjectUtils.assignDeep 中 默认转换结果的函数列表 */ static assignDeepDefaultHandlers: AssignDeepHandler[]; } export {}; //# sourceMappingURL=ObjectUtils.d.ts.map