2016-03-15 14 views

Odpowiedz

7

To jest TypeScript rest operator. W tym przypadku oznacza to, że może wystąpić dowolna liczba argumentów dowolnego typu; funkcja zobaczy je jako tablicę z any. (JavaScript niedawno dostał operatorów odpoczynku i rozprzestrzeniania, a także, jak z ES2015, ale :any[] w Twojej przykład mówi nam to maszynopis).

Np

ngOnChanges('a', 42, null); 

... pokaże

 
["a", 42, null] 

w konsoli.

Oto pełna przykład (live copy):

function foo(...args:any[]) { 
    console.log("args.length = " + args.length); 
    args.forEach((arg:any, index:Number) => { 
     console.log("args[" + index + "]: " + arg); 
    }); 
} 
foo('a', 42, null); 

wyjścia

 
args.length = 3 
args[0]: a 
args[1]: 42 
args[2]: null 
+0

Dzięki za odpowiedź! – micronyks

3

Składnia pozostałych parametrów pozwala nam reprezentować nieokreśloną liczbę argumentów jako tablicę.

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Functions/rest_parameters

function(a, b, ...theArgs) { 
    // ... 
} 

Jeżeli ostatni nazwany argument funkcji jest prefiksem ..., staje się tablicę, której elementy od 0 do theArgs.length dostarczane są przez rzeczywistych argumentów przekazanych do funkcji.

W powyższym przykładzie TheArgs będą gromadzić trzeci argument funkcji (ponieważ pierwszy jest mapowany na a, a drugi na b) i wszystkie kolejne argumenty.

+0

Dzięki za odpowiedź! – micronyks

Powiązane problemy