export { isObject, isPlainObject } from '@vue/shared' /** * 删除对象上的属性 * * @param obj - 源对象 * @param keys - 对象上的属性 * @returns 源对象 */ export declare function omitProps(obj: T, ...keys: Key[]): Omit /** * 从对象中挑选属性 * * @param obj - 源对象 * @param keys - 对象上的属性 * @returns 一个新的对象 */ export declare function pickProps(obj: T, ...keys: Key[]): Pick /** * 简单的深拷贝 * * @param obj - 源对象 * @returns 一个新的对象 */ export declare function copy(obj: T): T /** * 深拷贝,包括原型、函数和循环引用 * * @param obj - 源对象 * @returns 一个新的对象 */ export declare function clone(obj: T): T /** * 合并对象 * * @param obj - 目标对象 * @param objs - 源对象 * @returns 合并的对象,引用为第一个obj */ export declare function merge< T1 extends {}, T2 extends {}, T3 extends {}, T4 extends {}, T5 extends {}, T6 extends {}, T7 extends {}, T8 extends {}, T9 extends {}, >( obj: T1, obj2: T2, obj3?: T3, obj4?: T4, obj5?: T5, obj6?: T6, obj7?: T7, obj8?: T8, obj9?: T9, ): T1 & T2 & T3 & T4 & T5 & T6 & T7 & T8 & T9 /** Options for {@link isDiff} */ interface IsDiffOptions { /** 忽略比较的键 */ ignore?: string[] | ((k: string) => boolean | void) } /** * 比较对象是否不同 * * @param obj1 - 对象1 * @param obj2 - 对象2 * @param options - 配置 * @returns 是否不同 */ export declare function isDiff(obj1: O1, obj2: O2, options?: IsDiffOptions): boolean /** * 是否为 undefined | null | NaN | 空数组 | 空字符串 | 空对象 * * @param val - 值 * @returns 是否为空 */ export declare function isNone(val: unknown): boolean /** * 是否为 undefined | null * * @param val - 值 * @returns 是否为 undefined | null */ export declare function isNullish(val: unknown): val is null | undefined /** * 为对象的属性添加前缀 */ export declare function mapObjectProps( obj: T, pend: K, position?: 'front', ): { [Key in (keyof T) & string as `${K}${Capitalize}`]: T[Key] } /** * 为对象的属性添加后缀 */ export declare function mapObjectProps( obj: T, pend: K, position: 'behind', ): { [Key in (keyof T) & string as `${Key}${Capitalize}`]: T[Key] } /** * 是否为模块 * * @param target - 值 * @returns 是否为模块 */ export declare function isRealModule(target: unknown): boolean