Rest-Elemente in Tupeln
Verwenden Sie Rest-Elemente innerhalb von Tupeltypen.
Rest-Elemente in Tupeln ist eine kostenlose TypeScript Academy-Lektion auf CoddyKit. Dies ist Lektion 3 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.
Tupel variabler Länge
Tupel haben normalerweise eine feste Länge, aber ein Rest-Element ermöglicht es einer Position, beliebig viele Elemente aufzunehmen. Damit lassen sich Daten modellieren, die teilweise fest und teilweise variabel sind.
Nachgestelltes Rest-Element
Schreiben Sie [string, ...number[]], um Folgendes auszudrücken: ein String, gefolgt von null oder mehr Zahlen. Der erste Platz ist fest, der Rest kann beliebig wachsen.
type Row = [string, ...number[]]
const r: Row = ["scores", 9, 8, 7]
console.log(r[0], r.length) // scores 4Der feste Teil ist erforderlich
Die führenden festen Elemente müssen vorhanden sein. Der Rest kann leer sein, aber die festen Plätze dürfen nicht ausgelassen werden.
type Row = [string, ...number[]]
const min: Row = ["label"] // ok, zero numbers
// const bad: Row = [] // Error: missing string
console.log(min)Vorangestelltes Rest-Element
Ein Rest-Element kann auch am Anfang stehen, gefolgt von festen Elementen. Damit lässt sich ein variabler Kopf mit einem festen Ende modellieren.
type Trailing = [...number[], boolean]
const t: Trailing = [1, 2, 3, true]
console.log(t[t.length - 1]) // trueRest-Element in der Mitte
Das Rest-Element kann zwischen festen führenden und abschließenden Elementen stehen. TypeScript ermittelt, welche Positionen an den beiden Enden fest sind.
type Middle = [string, ...number[], boolean]
const m: Middle = ["start", 1, 2, false]
console.log(m[0], m[m.length - 1]) // start falseNur ein Rest-Element pro Tupel
Ein Tupel darf höchstens ein Rest-Element enthalten. Zwei Rest-Elemente würden die Positionen der Elemente mehrdeutig machen und sind daher nicht erlaubt.
// type Bad = [...string[], ...number[]] // Error: only one rest allowed
type Ok = [string, ...number[]]
const o: Ok = ["x", 1]
console.log(o)Destrukturieren eines Rest-Tupels
Die Destrukturierung passt perfekt zu Rest-Elementen in Tupeln. Feste Bindings belegen die festen Plätze; ein Rest-Binding erfasst den variablen Teil als typisiertes Array.
type Row = [string, ...number[]]
const row: Row = ["scores", 9, 8]
const [label, ...values] = row
console.log(label, values) // scores [9, 8]Benannte Tupel-Elemente
Sie können Tupelpositionen zur Dokumentation benennen. Die Bezeichnungen erscheinen in Tooltips und Signaturen, ändern aber nicht die Werte zur Laufzeit.
type Range = [start: number, end: number]
const span: Range = [0, 10]
console.log(span[0], span[1]) // 0 10Bezeichnungen für Rest-Elemente
Auch Rest-Elemente können mit Bezeichnungen versehen werden. Das ist besonders bei Tupeln von Funktionsparametern hilfreich, um verständliche Hinweise anzuzeigen.
type Args = [command: string, ...flags: string[]]
const a: Args = ["build", "--watch", "--minify"]
console.log(a[0], a.slice(1))Rest-Tupel als Parameterlisten
Ein Tupel mit einem Rest-Element kann die Parameterliste einer Funktion beschreiben und ermöglicht über Spread präzise Signaturen mit festen und anschließend variadischen Parametern.
type Params = [name: string, ...scores: number[]]
function report(...args: Params): string {
const [name, ...scores] = args
return name + ": " + scores.join(",")
}
console.log(report("Ada", 9, 8))Warum Rest-Tupel wichtig sind
Rest-Tupel drücken Strukturen aus, die einfache Arrays nicht darstellen können: einen erforderlichen Kopf mit einem variablen Körper, einen variablen Körper mit einem erforderlichen Ende oder beides. Sie bilden die Grundlage für die Typisierung variadischer Funktionen.
type CSVRow = [id: number, ...fields: string[]]
const row: CSVRow = [1, "Ada", "Engineer"]
console.log(row[0], row.slice(1))Schnelltest
Testen Sie Ihr Verständnis von Rest-Elementen in Tupeln.
Zusammenfassung
Ein Rest-Element in einem Tupel (...T[]) ermöglicht es einer Position, beliebig viele Elemente aufzunehmen, während feste führende und abschließende Elemente erforderlich bleiben. Das Rest-Element kann am Ende, am Anfang oder in der Mitte stehen, aber pro Tupel ist nur eines erlaubt. Die Destrukturierung passt zu diesen Strukturen, Bezeichnungen liefern verständliche Hinweise, und Rest-Tupel bilden die Grundlage für die Typisierung variadischer Funktionen.
Häufig gestellte Fragen
Ist die Lektion „Rest-Elemente in Tupeln“ kostenlos?
Ja — der vollständige Text von „Rest-Elemente in Tupeln“ 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-Elemente in Tupeln“?
Verwenden Sie Rest-Elemente innerhalb von Tupeltypen. 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 3 von 4.
Wie lange dauert die Lektion „Rest-Elemente in Tupeln“?
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