2012-10-02 8 views
16

Possible Duplicate:
open-ended function arguments with TypeScriptTyposkript: Typen für variadische Funktionen

Gibt es eine akzeptable Art Signatur für variadische Funktionen? Beispiel:

function sum() { 
    var sum = 0; 
    for (var i = 0; i < arguments.length; i++) { 
    sum += arguments[i]; 
    } 
    return sum; 
}; 

console.log(sum(1, 2, 3, 4, 5)); 

gibt mir Kompilierungsfehler:

foo.ts(9,12): Supplied parameters do not match any signature of call target 
+1

Siehe http://stackoverflow.com/questions/12697275/open-ended-function-arguments-with-typescript/12697349#12697349 - offene Funktion Argumente mit TypeScript –

Antwort

23

In Typoskript können Sie "..." verwenden, um die obigen Muster achive:

function sum (...numbers: number[]) { 
    var sum = 0; 
    for (var i = 0; i < numbers.length; i++) { 
    sum += numbers[i]; 
    } 
    return sum; 
}; 

Diese Pflege Ihrer Fehler nehmen.

+0

Ich denke, es unterstützt nicht den Multiple-Typ Feature? Zum Beispiel wird dies nicht kompilieren: foo (... item: string [] | Nummer []) – Lee

+1

@Lee es wird 'string [] | schlucken nicht number [] ', aber' (number | string) [] 'ist vollkommen in Ordnung (obwohl du wahrscheinlich etwas innerhalb des Funktionskörpers tun musst). – Borsunho

Verwandte Themen