UNPKG

ut2

Version:

一个现代 JavaScript 实用工具库。[点击查看在线文档]。

42 lines (41 loc) 2.08 kB
interface MergeObject { <T1, T2>(t1: T1, t2: T2): T1 & T2; <T1, T2, T3>(t1: T1, t2: T2, t3: T3): T1 & T2 & T3; <T1, T2, T3, T4>(t1: T1, t2: T2, t3: T3, t4: T4): T1 & T2 & T3 & T4; <T1, T2, T3, T4, T5>(t1: T1, t2: T2, t3: T3, t4: T4, t5: T5): T1 & T2 & T3 & T4 & T5; <T1, T2, T3, T4, T5, T6>(t1: T1, t2: T2, t3: T3, t4: T4, t5: T5, t6: T6): T1 & T2 & T3 & T4 & T5 & T6; <T1, T2, T3, T4, T5, T6, T7>(t1: T1, t2: T2, t3: T3, t4: T4, t5: T5, t6: T6, t7: T7): T1 & T2 & T3 & T4 & T5 & T6 & T7; <T1, T2, T3, T4, T5, T6, T7, T8>(t1: T1, t2: T2, t3: T3, t4: T4, t5: T5, t6: T6, t7: T7, t8: T8): T1 & T2 & T3 & T4 & T5 & T6 & T7 & T8; <T1, T2, T3, T4, T5, T6, T7, T8, T9>(t1: T1, t2: T2, t3: T3, t4: T4, t5: T5, t6: T6, t7: T7, t8: T8, t9: T9): T1 & T2 & T3 & T4 & T5 & T6 & T7 & T8 & T9; <T1, T2, T3, T4, T5, T6, T7, T8, T9, T10>(t1: T1, t2: T2, t3: T3, t4: T4, t5: T5, t6: T6, t7: T7, t8: T8, t9: T9, t10: T10): T1 & T2 & T3 & T4 & T5 & T6 & T7 & T8 & T9 & T10; <T1, T2, T>(t1: T1, t2: T2, ...args: T[]): T1 & T2 & T; } /** * 递归合并 `source` 来源对象自身的可枚举属性(包含 `Symbol` 属性)到 `object` 目标对象。 * * `merge` 方法的区别: * * 1. 不合并数组,如果只传入 `2` 个参数,同 `merge(obj, src, merge.NOT_MERGE_ARRAYS)` * 2. 不支持自定义赋值函数和获取对象键,但支持多个来源对象参数 * * @alias module:Object.mergeObject * @since 1.15.0 * @param {Object | Array} object 目标对象。 * @param {...object} args 来源对象。 * @returns 目标对象。 * @example * * mergeObject({c: 3}, {e: 5}); // { c: 3, e: 5 } * mergeObject({ a: 1 }, { a: undefined, b: undefined }); // { a: 1, b: undefined } * mergeObject({ a: 1 }, { a: undefined, b: undefined }, {c:'x'}); // { a: 1, b: undefined, c: 'x' } * * const source = { * a: [{b: 2}, {d: 4}] * } * const otherSource = { * a: [{c: 3},{e: 5}] * } * mergeObject({}, source, otherSource); // { a: [{c: 3}, {e: 5}] } */ declare const mergeObject: MergeObject; export default mergeObject;