Restparameters in functies
Voorzie functies van typen wanneer ze een willekeurig aantal argumenten accepteren
Restparameters in functies is een gratis TypeScript Academy-les op CoddyKit. Dit is les 1 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.
Functies met veel argumenten
Met restparameters kan een functie een willekeurig aantal argumenten accepteren, verzameld in één array. TypeScript typt die array, zodat je ook bij aanroepen met verschillende aantallen argumenten veiligheid hebt.
Elementaire restparameter
Voorzie de laatste parameter van het voorvoegsel ... en geef hem een arraytype. Binnen de functie gedraagt hij zich als een gewone array.
function sum(...nums: number[]): number {
return nums.reduce((a, b) => a + b, 0)
}
console.log(sum(1, 2, 3, 4)) // 10Aanroepen zonder argumenten
Een restparameter kan nul argumenten opvangen — de array is dan gewoon leeg. Voor het geval zonder argumenten is geen speciale afhandeling nodig.
function sum(...nums: number[]): number {
return nums.reduce((a, b) => a + b, 0)
}
console.log(sum()) // 0Rest na vaste parameters
Een restparameter mag na vaste parameters komen, maar moet laatste zijn. Eerst worden de vaste parameters gebonden; alles wat overblijft gaat naar de restarray.
function join(separator: string, ...parts: string[]): string {
return parts.join(separator)
}
console.log(join("-", "a", "b", "c")) // a-b-cSlechts één restparameter, altijd als laatste
Je mag hoogstens één restparameter hebben en er mag niets achter komen. Een parameter na de restparameter plaatsen is een syntaxisfout.
// function bad(...nums: number[], last: number) {} // Error
function ok(first: number, ...rest: number[]) {
return first + rest.length
}
console.log(ok(10, 1, 2)) // 12Beperkingen voor elementtypes
Het elementtype van de restarray beperkt elk argument. Een waarde van het verkeerde type wordt tijdens het compileren gedetecteerd.
function tags(...labels: string[]): string {
return labels.join(",")
}
console.log(tags("a", "b"))
// tags("a", 5) // Error: 5 is not a stringRest met een unietype
Het elementtype kan een unie zijn, zodat gemengde argumenten zijn toegestaan. Bepaal binnen de functie eerst het type van elk item voordat je het gebruikt.
function show(...items: (string | number)[]): string {
return items.map(String).join(" ")
}
console.log(show("x", 1, "y", 2)) // x 1 y 2Rest met tupletypes
Een restparameter kan als een tuple worden getypeerd om een vorm met eerst vaste en daarna variabele elementen te beschrijven. Hier is het eerste argument een tekenreeks, gevolgd door een willekeurig aantal getallen.
function record(...args: [string, ...number[]]): string {
const [label, ...values] = args
return label + ": " + values.join(",")
}
console.log(record("scores", 9, 8, 7))Tuple-rest dwingt de ariteit af
Bij een tupletype voor rest zijn de eerste elementen verplicht. Het verplichte eerste argument weglaten is een compileerfout — strenger dan bij een gewone array.
function record(...args: [string, ...number[]]): number {
return args.length
}
console.log(record("x")) // 1
// record() // Error: missing string argumentEen array spreiden in een restaanroep
Je kunt bij de aanroep een bestaande array met de spreadsyntaxis aan een restparameter doorgeven. Het elementtype van de array moet overeenkomen met dat van de parameter.
function sum(...nums: number[]): number {
return nums.reduce((a, b) => a + b, 0)
}
const values = [1, 2, 3]
console.log(sum(...values)) // 6Rest in de praktijk
Restparameters vormen de basis voor hulpfuncties voor logboekregistratie, opmaakfuncties en rekenhulpmiddelen — voor alles wat een variabel aantal invoerwaarden met een gedeeld of gestructureerd type verwerkt.
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)) // 9Korte controle
Controleer je begrip van getypeerde restparameters.
Samenvatting
Restparameters gebruiken ... bij de laatste parameter om extra argumenten in een getypeerde array te verzamelen. Ze moeten als laatste komen en er kan er maar één zijn. Je kunt ze typeren als een gewone array, een unie-array of een tuple om vormen met eerst vaste en daarna variabele elementen uit te drukken en de ariteit af te dwingen. Spreid bij de aanroep een bestaande array om die aan een restparameter door te geven.
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 “Restparameters in functies” gratis?
Ja — de volledige tekst van “Restparameters in functies” 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 “Restparameters in functies”?
Voorzie functies van typen wanneer ze een willekeurig aantal argumenten accepteren 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 1 van 4.
Hoe lang duurt de les “Restparameters in functies”?
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