2016-03-04 12 views
7

Dlaczego istnieje wiele przykładów elipsis lub trzy kropki przed importem Angular2.Elipsis przed klasami Angular2 (w tym przypadku kolekcje)

To nie jest wymagane, mogę je usunąć, a moja aplikacja będzie nadal działać. Widziałem ten "wzór" w przykładach kątowych2 iw używanym przeze mnie materiale siewnym.

Chciałbym jednak zrozumieć, dlaczego tak się dzieje, nie jestem pewien, czy szukam niewłaściwych fraz, ponieważ próbowałem już tego wielokrotnie sprawdzać.

providers: [...FORM_PROVIDERS], 
directives: [ ...ROUTER_DIRECTIVES] 

wydaje się być taka sama jak

providers: [FORM_PROVIDERS], 
directives: [ROUTER_DIRECTIVES] 

Czy to tylko dla wyjaśnienia Są wielu dostawców/komponenty?

+1

To, co nazywasz _ellipsis_, to ES2015 [operator rozsyłania] (https://developer.mozilla.org/nl/docs/Web/JavaScript/Reference/Operators/Spread_operator) – Ludohen

+1

'FORM_PROVIDERS', 'ROUTER_DIRECTIVES' i inne są w zasadzie tablice dostawców, są po prostu rozłożone w nowej instancji tablicy. Dzięki temu możesz przekazać płaski zestaw dostawców, jeśli dodasz wiele z nich. – Ludohen

+0

@ Blancohen Dlaczego nie odpowiesz, Mathijs może to zaakceptować, a pytanie jest zamknięte. W ten sposób może pozostać otwarty na zawsze. –

Odpowiedz

7

Z moich komentarzy powyżej.

To, co nazywacie elipsą, to ES2015 spread operator.

W przeciwnym razie, FORM_PROVIDERS, ROUTER_DIRECTIVES i inne są w zasadzie tablicami dostawców, są po prostu rozłożone w nowej instancji tablicy. Dzięki temu możesz przekazać płaski zestaw dostawców, jeśli dodasz wiele z nich.

+1

Nie widziałem żadnej wzmianki o tym, czy to faktycznie robi różnicę dla Angular2, czy dostaje płaską tablicę lub tablicę z mieszanką dostawców i tablic dostawców przeszło. W każdym razie nie jest wymagane, aby był płaską tablicą. –

+0

To prawda, dostawcy mogą być przekazywane jako zagnieżdżone tablice (nieograniczona głębokość). Prawdopodobnie ma to na celu utrzymanie czystszego rejestru i uniknięcie niepotrzebnych pętli rekursywnych. – Ludohen

+0

To z pewnością brzmi dobrze, ale po prostu nie wiedziałem, jaka jest różnica, ponieważ nic się nie zmieniło. I znalezienie przyczyny było również trudne :-) –

Powiązane problemy