Подтвердить что ты не робот

Angular 2 - Слияние (расширение) объектов

Как слить 2 объекта с помощью Angular 2?

В AngularJS 1 мы имеем функции "слияния" и "расширения": https://docs.angularjs.org/api/ng/function/angular.merge https://docs.angularjs.org/api/ng/function/angular.extend

Но, по-видимому, ничего в Angular 2!

У вас есть идея?

Спасибо!

4b9b3361

Ответ 1

Angular2 не содержит ничего подобного.

Вы можете использовать, например, Object.assign()

Object.assign(target, source_1, ..., source_n)

Ответ 2

Согласно MDN, Object.assign() еще не поддерживается IE и Android. Если вы установите версию Typescript версии 2.1 или выше, вы можете вместо этого использовать Object Spread:

let obj = { x: 1, y: "string" };
var newObj = {...obj, z: 3, y: 4}; // { x: number, y: number, z: number }

Если вы не хотите использовать Typescript, то здесь простой polyfill от Typescript преобразование выше в JavaScript:

Object.assign = Object.assign || function(t) {
    for (var s, i = 1, n = arguments.length; i < n; i++) {
        s = arguments[i];
        for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
            t[p] = s[p];
    }
    return t;
};

var obj = { x: 1, y: "string" };
var newObj = Object.assign({}, obj, { z: 3, y: 4 });

Просмотр на Typescript Игровая площадка