TypeScript Academy · Lektion

Rest-parametre i funktioner

Typ funktioner, der accepterer et vilkårligt antal argumenter

Lektion 1 af 413 trin

Rest-parametre i funktioner er en gratis TypeScript Academy-lektion på CoddyKit. Dette er lektion 1 af 4. Du kan læse hele lektionen gratis nedenfor — og derefter øve dig praktisk i browseren med en indbygget kodeeditor og en AI-vejleder, der er tilgængelig døgnet rundt. Den er en del af læringsforløbet i TypeScript Academy, og dine fremskridt synkroniseres på tværs af nettet og CoddyKit-appen. TypeScript Academy-kurset indeholder 4 lektioner i alt.

Funktioner med mange argumenter

Restparametre lader en funktion acceptere et vilkårligt antal argumenter, samlet i ét array. TypeScript angiver typen på det array, så du får sikkerhed selv ved kald med varierende længde.

Grundlæggende restparameter

Føj ... foran den sidste parameter, og giv den en arraytype. Inde i funktionen opfører den sig som et normalt array.

function sum(...nums: number[]): number {
  return nums.reduce((a, b) => a + b, 0)
}
console.log(sum(1, 2, 3, 4)) // 10

Kald uden argumenter

En restparameter kan matche nul argumenter – arrayet er ganske enkelt tomt. Der kræves ingen særlig håndtering, når der ikke er nogen argumenter.

function sum(...nums: number[]): number {
  return nums.reduce((a, b) => a + b, 0)
}
console.log(sum()) // 0

Rest efter faste parametre

En restparameter kan følge efter faste parametre, men den skal være sidst. De faste parametre bindes først; alt resterende kommer i rest-arrayet.

function join(separator: string, ...parts: string[]): string {
  return parts.join(separator)
}
console.log(join("-", "a", "b", "c")) // a-b-c

Kun én restparameter, altid sidst

Du må højst have én restparameter, og intet kan følge efter den. Hvis du placerer en parameter efter resten, er det en syntaksfejl.

// function bad(...nums: number[], last: number) {} // Error
function ok(first: number, ...rest: number[]) {
  return first + rest.length
}
console.log(ok(10, 1, 2)) // 12

Typebegrænsninger for elementer

Rest-arrayets elementtype begrænser alle argumenter. En forkert type ved kaldet opdages ved kompilering.

function tags(...labels: string[]): string {
  return labels.join(",")
}
console.log(tags("a", "b"))
// tags("a", 5) // Error: 5 is not a string

Rest med en uniontype

Elementtypen kan være en uniontype, så blandede argumenter er tilladt. Inde i funktionen skal du indsnævre hvert element, før du bruger det.

function show(...items: (string | number)[]): string {
  return items.map(String).join(" ")
}
console.log(show("x", 1, "y", 2)) // x 1 y 2

Rest med tupeltyper

En restparameter kan have tupeltype for at beskrive en form med faste elementer efterfulgt af et variabelt antal elementer. Her er det første argument en streng, efterfulgt af et vilkårligt antal tal.

function record(...args: [string, ...number[]]): string {
  const [label, ...values] = args
  return label + ": " + values.join(",")
}
console.log(record("scores", 9, 8, 7))

Tupel-rest håndhæver antallet af argumenter

Med en tupel-resttype er de indledende elementer obligatoriske. Hvis det obligatoriske første argument udelades, opstår der en kompileringsfejl – det er strengere end et almindeligt array.

function record(...args: [string, ...number[]]): number {
  return args.length
}
console.log(record("x")) // 1
// record() // Error: missing string argument

Spredning i et restkald

Du kan sende et eksisterende array til en restparameter ved at bruge spredning på kaldestedet. Arrayets elementtype skal passe til parameterens.

function sum(...nums: number[]): number {
  return nums.reduce((a, b) => a + b, 0)
}
const values = [1, 2, 3]
console.log(sum(...values)) // 6

Rest i praksis

Restparametre driver hjælpefunktioner til logning, formateringsfunktioner og matematikværktøjer – alt, der håndterer et variabelt antal inddata med en fælles eller struktureret type.

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

Hurtig kontrol

Test din forståelse af typeangivne restparametre.

Opsummering

Restparametre bruger ... på den sidste parameter til at samle ekstra argumenter i et typeangivet array. De skal stå sidst, og der kan kun være én. Angiv typen som et simpelt array, et array med en uniontype eller en tupel for at udtrykke former med faste elementer efterfulgt af et variabelt antal elementer, som håndhæver antallet af argumenter. Spred et eksisterende array på kaldestedet for at sende det til en restparameter.

Gratis at komme i gang

Lær TypeScript med en AI-underviser — gratis

Skriv og kør rigtig kode i din browser, få øjeblikkelig hjælp fra en AI-underviser døgnet rundt, og fortsæt, hvor du slap, på web eller i appen.

Kurser
101
Lektioner
352

Ofte stillede spørgsmål

Er lektionen “Rest-parametre i funktioner” gratis?

Ja — hele teksten til “Rest-parametre i funktioner” kan læses gratis her på nettet. Hvis du vil øve dig interaktivt med en indbygget kodeeditor og en AI-vejleder døgnet rundt og få adgang til resten af TypeScript Academy-kurset, skal du opgradere til CoddyKit PRO. TypeScript Academy-kurset indeholder 4 lektioner i alt.

Hvad lærer jeg i “Rest-parametre i funktioner”?

Typ funktioner, der accepterer et vilkårligt antal argumenter Du øver dig i TypeScript Academy med praktisk kode, som du kører direkte i browseren, og en AI-vejleder døgnet rundt besvarer dine spørgsmål, mens du arbejder dig gennem lektionen.

Skal jeg have erfaring for at begynde på TypeScript Academy?

Der kræves ingen tidligere erfaring. TypeScript Academy på CoddyKit er tilrettelagt for både begyndere og øvede, så du kan starte her eller fra begyndelsen og lære i dit eget tempo. Dette er lektion 1 af 4.

Hvor lang tid tager lektionen “Rest-parametre i funktioner”?

De fleste CoddyKit-lektioner tager cirka 5–10 minutter. Hver lektion er kort og interaktiv, så du gør løbende fremskridt og kan fortsætte, hvor du slap – på både web og app.

Kan jeg skrive og køre kode i denne TypeScript Academy-lektion?

Ja. Alle TypeScript Academy-lektioner har en indbygget kodeeditor, så du kan skrive og køre rigtig kode direkte i din browser og få øjeblikkelig feedback fra AI – uden lokal opsætning.

Alle lektioner i dette kursus

  1. Rest-parametre i funktioner
  2. Spread i arrays og objekter
  3. Rest-elementer i tupler
  4. Typning af variadiske funktioner
← Tilbage til TypeScript Academy