Rest-elementen in tuples
Gebruik rest-elementen binnen tupletypen
Rest-elementen in tuples is een gratis TypeScript Academy-les op CoddyKit. Dit is les 3 van 4. Je kunt de volledige les hieronder gratis lezen en daarna in de browser praktisch oefenen met een ingebouwde code-editor en een AI-begeleider die 24/7 beschikbaar is. Deze les maakt deel uit van het leertraject TypeScript Academy. Je voortgang wordt gesynchroniseerd op het web en in de CoddyKit-app. De cursus TypeScript Academy bevat in totaal 4 lessen.
Tuples met variabele lengte
Tuples hebben normaal gesproken een vaste lengte, maar met een rest-element kan één positie een willekeurig aantal items opnemen. Hiermee modelleer je gegevens die deels vast en deels variabel zijn.
Een afsluitend rest-element
Schrijf [string, ...number[]] om één string, gevolgd door nul of meer getallen, aan te geven. De eerste positie staat vast; de rest kan onbeperkt groeien.
type Row = [string, ...number[]]
const r: Row = ["scores", 9, 8, 7]
console.log(r[0], r.length) // scores 4Het vaste deel is verplicht
De voorste vaste elementen moeten aanwezig zijn. Het restgedeelte mag leeg zijn, maar de vaste posities kun je niet overslaan.
type Row = [string, ...number[]]
const min: Row = ["label"] // ok, zero numbers
// const bad: Row = [] // Error: missing string
console.log(min)Voorste rest-element
Een rest-element kan ook als eerste komen, met vaste elementen erachter. Hiermee modelleer je een variabele kop, gevolgd door een vaste staart.
type Trailing = [...number[], boolean]
const t: Trailing = [1, 2, 3, true]
console.log(t[t.length - 1]) // trueRest-element in het midden
Het rest-element kan in het midden staan, tussen vaste voorste en achterste elementen. TypeScript bepaalt welke posities aan beide uiteinden vaststaan.
type Middle = [string, ...number[], boolean]
const m: Middle = ["start", 1, 2, false]
console.log(m[0], m[m.length - 1]) // start falseSlechts één rest-element per tuple
Een tuple mag maximaal één rest-element bevatten. Met twee rest-elementen zouden de posities van elementen onduidelijk worden, dus dat is niet toegestaan.
// type Bad = [...string[], ...number[]] // Error: only one rest allowed
type Ok = [string, ...number[]]
const o: Ok = ["x", 1]
console.log(o)Een tuple met rest-element destructureren
Destructurering sluit perfect aan op rest-elementen in tuples. Vaste variabelen nemen de vaste posities in; een restvariabele legt het variabele deel vast als een array met een type.
type Row = [string, ...number[]]
const row: Row = ["scores", 9, 8]
const [label, ...values] = row
console.log(label, values) // scores [9, 8]Gelabelde tuple-elementen
Je kunt tupleposities een naam geven voor documentatie. Labels verschijnen in tooltips en signaturen, maar veranderen de waarden tijdens uitvoering niet.
type Range = [start: number, end: number]
const span: Range = [0, 10]
console.log(span[0], span[1]) // 0 10Labels voor rest-elementen
Ook rest-elementen kunnen een label krijgen. Dat is vooral nuttig in tuples met functieparameters, omdat de hints dan beter leesbaar zijn.
type Args = [command: string, ...flags: string[]]
const a: Args = ["build", "--watch", "--minify"]
console.log(a[0], a.slice(1))Rest-tuples als parameterlijsten
Een tuple met een rest-element kan de parameterlijst van een functie beschrijven, zodat je via spread nauwkeurige signaturen met een vast en daarna een variabel aantal parameters kunt maken.
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))Waarom rest-tuples belangrijk zijn
Met rest-tuples druk je structuren uit die gewone arrays niet kunnen beschrijven: een verplichte kop met een variabel middendeel, een variabel middendeel met een verplichte afsluiting, of beide. Ze vormen de basis voor het typeren van variadische functies.
type CSVRow = [id: number, ...fields: string[]]
const row: CSVRow = [1, "Ada", "Engineer"]
console.log(row[0], row.slice(1))Korte toets
Toets je begrip van rest-elementen in tuples.
Samenvatting
Met een rest-element in een tuple (...T[]) kan één positie een willekeurig aantal items opnemen, terwijl vaste voorste en achterste elementen verplicht blijven. Het rest-element kan achteraan, vooraan of in het midden staan, maar per tuple is slechts één rest-element toegestaan. Destructurering sluit aan op deze structuren, labels voegen leesbare hints toe en rest-tuples vormen de basis voor het typeren van variadische functies.
Leer TypeScript met een AI-tutor — gratis
Schrijf echte code en voer die uit in je browser, krijg direct hulp van een AI-tutor die 24/7 beschikbaar is en ga verder waar je gebleven bent op het web of in de app.
- Cursussen
- 101
- Lessen
- 352
Veelgestelde vragen
Is de les “Rest-elementen in tuples” gratis?
Ja — de volledige tekst van “Rest-elementen in tuples” kun je hier gratis op het web lezen. Als je interactief wilt oefenen met een ingebouwde code-editor en een AI-begeleider die 24/7 beschikbaar is, en de rest van de cursus TypeScript Academy wilt ontgrendelen, kun je upgraden naar CoddyKit PRO. De cursus TypeScript Academy bevat in totaal 4 lessen.
Wat leer ik in “Rest-elementen in tuples”?
Gebruik rest-elementen binnen tupletypen Je oefent met TypeScript Academy door code rechtstreeks in de browser uit te voeren. Een AI-begeleider die 24/7 beschikbaar is beantwoordt je vragen terwijl je de les doorwerkt.
Heb ik ervaring nodig om met TypeScript Academy te beginnen?
Ervaring vooraf is niet nodig. TypeScript Academy op CoddyKit is opgebouwd voor beginners tot gevorderden, zodat je hier of bij het begin kunt starten en in je eigen tempo kunt leren. Dit is les 3 van 4.
Hoe lang duurt de les “Rest-elementen in tuples”?
De meeste lessen van CoddyKit duren ongeveer 5–10 minuten. Elke les is kort en interactief, zodat je gestaag vooruitgaat en op het web en in de app precies verdergaat waar je was gebleven.
Kan ik code schrijven en uitvoeren in deze les over TypeScript Academy?
Ja. Elke les over TypeScript Academy bevat een ingebouwde code-editor, zodat je rechtstreeks in je browser echte code kunt schrijven en uitvoeren en direct feedback van AI krijgt — lokale installatie is niet nodig.
Alle lessen in deze cursus
- Restparameters in functies
- Spread in arrays en objecten
- Rest-elementen in tuples
- Variadische functies typen