2016-04-03 2 views

ответ

24

Угловой2 не обеспечивает ничего подобного.

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

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

Будьте осторожны с IE. Согласно MDN, он не поддерживается. – lukeatdesignworks

+1

Android-браузер не поддерживает это: http://kangax.github.io/compat-table/es6/#test-Object_static_methods_Object.assign – Chris

+4

Если вы используете Angular-CLI, найдите 'poyfills.ts' и раскомментируйте код, поддерживающий IE9-11. – shammelburg

13

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

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

Если вы не хотите использовать машинопись, то вот simple polyfill от конверсии Машинопись о выше в 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 }); 

View on Typescript Playground

Смежные вопросы