2016-04-03 2 views

答えて

24

Angular2はこのようなものを提供しません。あなたはMDN, Object.assign()によると、たとえば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

を使用することができます

は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 } 

あなたは活字体を使用したくない場合は、ここではjavascriptのに上記の活字体の変換からsimple polyfillです:

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

関連する問題