TypeScript Academy · Les

Restparameters in functies

Voorzie functies van typen wanneer ze een willekeurig aantal argumenten accepteren

Les 1 van 413 stappen

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)) // 10

Aanroepen 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()) // 0

Rest 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-c

Slechts éé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)) // 12

Beperkingen 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 string

Rest 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 2

Rest 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 argument

Een 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)) // 6

Rest 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)) // 9

Korte 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.

Gratis beginnen

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

  1. Restparameters in functies
  2. Spread in arrays en objecten
  3. Rest-elementen in tuples
  4. Variadische functies typen
← Terug naar TypeScript Academy