2016-03-04 6 views
7

Perché ci sono in molti esempi elipsis o tre punti davanti a un'importazione Angular2.Elipsis davanti a Classi Angular2 (collezioni in questo caso)

Non sembra necessario, posso rimuoverlo e la mia applicazione funzionerà ancora. Ho visto questo "modello" in esempi angular2 e nel seme che sto usando.

Vorrei tuttavia capire perché questo è fatto, non sono sicuro se sto cercando le frasi sbagliate perché ho provato a cercare questo più volte prima.

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

sembra essere lo stesso di

providers: [FORM_PROVIDERS], 
directives: [ROUTER_DIRECTIVES] 

E 'solo per chiarire questi sono molteplici fornitori/componenti?

+1

Quello che chiamate _ellipsis_ è ES2015 [operatore di spread] (https://developer.mozilla.org/nl/docs/Web/JavaScript/Reference/Operators/Spread_operator) – Ludohen

+1

'FORM_PROVIDERS',' ROUTER_DIRECTIVES' e altri sono fondamentalmente array di provider, sono semplicemente distribuiti in una nuova istanza di array. Ciò consente di passare una serie piatta di provider se ne aggiungi molti. – Ludohen

+0

@Ludohen Perché non gli dai una risposta, Mathijs può accettarlo e la domanda è chiusa. In questo modo potrebbe rimanere aperto per sempre. –

risposta

7

Dai miei commenti sopra.

Quello che chiamate ellissi è il ES2015 spread operator.

Altrimenti, FORM_PROVIDERS, ROUTER_DIRECTIVES e altri sono fondamentalmente matrici di provider, sono solo distribuiti in una nuova istanza di array. Ciò consente di passare una serie piatta di provider se ne aggiungi molti.

+1

Non ho visto alcuna menzione se in realtà fa la differenza per Angular2 se ottiene un array flat o un array con un mix di provider e array dei fornitori passati. In ogni caso non è necessario renderlo un array piatto. –

+0

È vero, i provider possono essere passati come array annidati (profondità illimitata). Probabilmente è per mantenere il pulitore di registro ed evitare loop ricorsivi non necessari. – Ludohen

+0

Sembra certamente una buona pratica, ma non sapevo quale fosse la differenza dal momento che nulla sembrava cambiare. E trovare il perché era anche difficile :-) –

Problemi correlati