Rest-Parameter in Funktionen
Typisieren Sie Funktionen, die beliebig viele Argumente akzeptieren.
Rest-Parameter in Funktionen ist eine kostenlose TypeScript Academy-Lektion auf CoddyKit. Dies ist Lektion 1 von 4. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des TypeScript Academy-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der TypeScript Academy-Kurs umfasst insgesamt 4 Lektionen.
Funktionen mit vielen Argumenten
Restparameter ermöglichen es einer Funktion, eine beliebige Anzahl von Argumenten anzunehmen und in einem einzigen Array zu sammeln. TypeScript typisiert dieses Array und bietet dadurch auch bei Aufrufen mit variabler Länge Sicherheit.
Einfacher Restparameter
Stellen Sie dem letzten Parameter ... voran und geben Sie ihm einen Array-Typ. Innerhalb der Funktion verhält er sich wie ein gewöhnliches Array.
function sum(...nums: number[]): number {
return nums.reduce((a, b) => a + b, 0)
}
console.log(sum(1, 2, 3, 4)) // 10Aufruf ohne Argumente
Ein Restparameter kann null Argumente aufnehmen — das Array ist dann einfach leer. Für den Fall ohne Argumente ist keine besondere Behandlung erforderlich.
function sum(...nums: number[]): number {
return nums.reduce((a, b) => a + b, 0)
}
console.log(sum()) // 0Rest nach festen Parametern
Ein Restparameter kann auf feste Parameter folgen, muss aber an letzter Stelle stehen. Die festen Parameter werden zuerst gebunden; alles Übrige wird im Rest-Array gesammelt.
function join(separator: string, ...parts: string[]): string {
return parts.join(separator)
}
console.log(join("-", "a", "b", "c")) // a-b-cNur ein Restparameter, immer zuletzt
Sie dürfen höchstens einen Restparameter haben, und danach darf nichts mehr folgen. Ein Parameter nach dem Restparameter ist ein Syntaxfehler.
// function bad(...nums: number[], last: number) {} // Error
function ok(first: number, ...rest: number[]) {
return first + rest.length
}
console.log(ok(10, 1, 2)) // 12Typbeschränkungen für Elemente
Der Elementtyp des Rest-Arrays schränkt jedes Argument ein. Die Übergabe eines falschen Typs wird zur Compilezeit erkannt.
function tags(...labels: string[]): string {
return labels.join(",")
}
console.log(tags("a", "b"))
// tags("a", 5) // Error: 5 is not a stringRest mit einem Union-Typ
Der Elementtyp kann eine Union sein und dadurch gemischte Argumente erlauben. Grenzen Sie innerhalb der Funktion jedes Element ein, bevor Sie es verwenden.
function show(...items: (string | number)[]): string {
return items.map(String).join(" ")
}
console.log(show("x", 1, "y", 2)) // x 1 y 2Rest mit Tupeltypen
Ein Restparameter kann als Tupel typisiert werden, um eine Struktur aus festen und variablen Teilen zu beschreiben. Hier ist das erste Argument eine Zeichenkette, gefolgt von einer beliebigen Anzahl von Zahlen.
function record(...args: [string, ...number[]]): string {
const [label, ...values] = args
return label + ": " + values.join(",")
}
console.log(record("scores", 9, 8, 7))Tupel-Rest erzwingt die Anzahl der Argumente
Bei einem Tupel-Resttyp sind die führenden Elemente erforderlich. Das Weglassen des obligatorischen ersten Arguments führt zu einem Kompilierfehler — ein Tupel-Resttyp ist damit strenger als ein gewöhnliches Array.
function record(...args: [string, ...number[]]): number {
return args.length
}
console.log(record("x")) // 1
// record() // Error: missing string argumentMit Spread in einen Restparameter-Aufruf
Sie können ein vorhandenes Array beim Aufruf mithilfe von Spread an einen Restparameter übergeben. Der Elementtyp des Arrays muss mit dem des Parameters übereinstimmen.
function sum(...nums: number[]): number {
return nums.reduce((a, b) => a + b, 0)
}
const values = [1, 2, 3]
console.log(sum(...values)) // 6Restparameter in der Praxis
Restparameter bilden die Grundlage für Logging-Hilfsfunktionen, Formatierer und mathematische Dienstprogramme — also für alles, was eine variable Anzahl von Eingaben mit einem gemeinsamen oder strukturierten Typ verarbeitet.
function max(first: number, ...rest: number[]): number {
return rest.reduce((m, n) => (n > m ? n : m), first)
}
console.log(max(3, 7, 2, 9, 1)) // 9Kurzer Test
Testen Sie Ihr Verständnis typisierter Restparameter.
Zusammenfassung
Restparameter verwenden ... beim letzten Parameter, um zusätzliche Argumente in einem typisierten Array zu sammeln. Sie müssen an letzter Stelle stehen, und es darf nur einen geben. Typisieren Sie sie als einfaches Array, als Union-Array oder als Tupel, um Strukturen mit festen und variablen Teilen zu beschreiben und die Anzahl der Argumente zu erzwingen. Verwenden Sie beim Aufruf Spread mit einem vorhandenen Array, um einen Restparameter zu versorgen.
Häufig gestellte Fragen
Ist die Lektion „Rest-Parameter in Funktionen“ kostenlos?
Ja — der vollständige Text von „Rest-Parameter in Funktionen“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des TypeScript Academy-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der TypeScript Academy-Kurs umfasst insgesamt 4 Lektionen.
Was lerne ich in „Rest-Parameter in Funktionen“?
Typisieren Sie Funktionen, die beliebig viele Argumente akzeptieren. Du übst TypeScript Academy mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.
Brauche ich Erfahrung, um TypeScript Academy zu starten?
Keine Vorkenntnisse erforderlich. TypeScript Academy auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 1 von 4.
Wie lange dauert die Lektion „Rest-Parameter in Funktionen“?
Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.
Kann ich in dieser TypeScript Academy-Lektion Code schreiben und ausführen?
Ja. Jede TypeScript Academy-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.
Alle Lektionen in diesem Kurs
- Rest-Parameter in Funktionen
- Spread in Arrays und Objekten
- Rest-Elemente in Tupeln
- Variadische Funktionen typisieren