Читать книгу Angular - Manfred Steyer - Страница 47

Spread-Operator

Оглавление

Es gibt immer wieder Fälle, in denen man ein bestehendes Objekt nicht verändern darf, weil zum Beispiel auch noch andere Programmteile davon abhängig sind. In diesen Fällen bietet es sich an, das Objekt für die eigenen Zwecke zu klonen. Ein sehr nützliches Sprachmerkmal hierfür ist der Spread-Operator:

const flight: Flight = {

id: 1,

from: 'Graz',

to: 'Hamburg',

date: '2018-12-24T17:00:00.0001:00'

}

const flightClone1 = { ...flight };

const flightClone2 = { ...flight, id: 2 };

Während flightClone1 eine Kopie von flight erhält, bekommt flightClone2 eine modifizierte Kopie, die eine andere ID aufweist.

Dasselbe funktioniert auch mit Arrays:

const ary = [1, 2, 3, 4];

const aryClone1 = [...ary];

const aryClone2 = [0, ...ary];

Hier ist aryClone1 ebenfalls eine Kopie und aryClone2 eine Kopie, der zusätzlich ein Eintrag 0 hinzugefügt wurde.

Wichtig zu wissen ist, dass der Spread-Operator immer »nur« eine flache Kopie erzeugt, d.h., untergeordnete Objekte kopiert er nicht mit. Wollen Sie diese ebenfalls kopieren, müssen Sie sich selbst darum kümmern:

const obj = {

id: 1,

// untergeordnetes Objekt:

more: {

count: 10

}

};

const objClone = {...obj, more: {...obj.more}}

Angular

Подняться наверх