IMO, eines der Hauptanliegen der TypeScript- Sprache ist die Unterstützung des vorhandenen Vanilla-JavaScript-Codes. Dies ist der Eindruck, den ich auf den ersten Blick hatte. Schauen Sie sich die folgende JavaScript-Funktion an, die vollkommen gültig ist:
Hinweis: Ich sage nicht, dass mir dieser Ansatz gefällt. Ich sage nur, dass dies ein gültiger JavaScript-Code ist.
function sum(numbers) {
var agregatedNumber = 0;
for(var i = 0; i < arguments.length; i++) {
agregatedNumber += arguments[i];
}
return agregatedNumber;
}
Wir verwenden diese Funktion also mit einer beliebigen Anzahl von Argumenten:
console.log(sum(1, 5, 10, 15, 20));
Wenn ich dies jedoch mit TypeScript Playground ausprobiere, treten Fehler bei der Kompilierung auf.
Ich gehe davon aus, dass dies ein Fehler ist. Nehmen wir an, wir haben keine Kompatibilitätsprobleme. Gibt es dann eine Möglichkeit, diese Art von Funktionen mit offenen Argumenten zu schreiben? Wie params
Feature in C #?
quelle
numbers
Parameter? Du machst nichts damit.Antworten:
Die TypeScript-Methode besteht darin, den Auslassungsoperator (
...
) vor dem Namen des Arguments zu platzieren. Das obige würde geschrieben werden als,Dies wird dann check korrekt mit eingeben
quelle
Zusätzlich zu @chuckj Antwort: Sie können auch ein
arrow function expression
in TypeScript verwenden (ist eine Artlambda
in Java / .NET)quelle
In Typescript ist es das Konzept des Rest-Parameters , es ist der Parameter, der mehrere Werte ähnlichen Typs empfängt. Wenn wir auf das Typoskript abzielen, müssen wir den Code ECMAScript 6 schreiben , dann konvertiert der Typoskript-Transpiler ihn in seinen entsprechenden Java-Skriptcode ( Dies ist der ECMAScript 5- Standard. Wenn wir Typoskript verwenden, müssen wir drei Punkte (...) Preferx mit dem Namen der Restparameter-Variablen verwenden, z. B. Funktionssumme (... Zahlen: Nummer []), dann würde es funktionieren.
Hinweis: Der Rest-Parameter muss der letzte Parameter in der Parameterliste sein. Ebenso Funktionssumme (Name: Zeichenfolge, Alter: Nummer, ... Nummern: Nummer []).
quelle