The objAssign() method copies all enumerable own properties from one or more source objects to a target object. It returns the modified target object.

Properties in the target object are overwritten by properties in the sources if they have the same key. Later sources' properties overwrite earlier ones.

The objAssign() method only copies enumerable and own properties from a source object to a target object. It uses Get on the source and Set on the target, so it will invoke getters and setters. Therefore it assigns properties, versus copying or defining new properties. This may make it unsuitable for merging new properties into a prototype if the merge sources contain getters.

For copying property definitions (including their enumerability) into prototypes, use objGetOwnPropertyDescriptor and objDefineProp instead.

Both String and Symbol properties are copied.

In case of an error, for example if a property is non-writable, a TypeError is raised, and the target object is changed if any properties are added before the error is raised.

const obj = { a: 1 };
const copy = objAssign({}, obj);
console.log(copy); // { a: 1 }

const o1 = { a: 1 };
const o2 = { b: 2 };
const o3 = { c: 3 };

const obj = objAssign(o1, o2, o3);
console.log(obj); // { a: 1, b: 2, c: 3 }
console.log(o1); // { a: 1, b: 2, c: 3 }, target object itself is changed.
  • Copy the values of all of the enumerable own properties from one or more source objects to a target object. Returns the target object.

    Type Parameters

    • T extends {}
    • U

    Parameters

    • target: T

      The target object to copy to.

    • source: U

      The source object from which to copy properties.

    Returns T & U

  • Copy the values of all of the enumerable own properties from one or more source objects to a target object. Returns the target object.

    Type Parameters

    • T extends {}
    • U
    • V

    Parameters

    • target: T

      The target object to copy to.

    • source1: U

      The first source object from which to copy properties.

    • source2: V

      The second source object from which to copy properties.

    Returns T & U & V

  • Copy the values of all of the enumerable own properties from one or more source objects to a target object. Returns the target object.

    Type Parameters

    • T extends {}
    • U
    • V
    • W

    Parameters

    • target: T

      The target object to copy to.

    • source1: U

      The first source object from which to copy properties.

    • source2: V

      The second source object from which to copy properties.

    • source3: W

      The third source object from which to copy properties.

    Returns T & U & V & W

  • Copy the values of all of the enumerable own properties from one or more source objects to a target object. Returns the target object.

    Parameters

    • target: object

      The target object to copy to.

    • Rest...sources: any[]

      One or more source objects from which to copy properties

    Returns any