Rest-parametre i funktioner
Typ funktioner, der accepterer et vilkårligt antal argumenter
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)) // 10Kald 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()) // 0Rest 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-cKun é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)) // 12Typebegræ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 stringRest 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 2Rest 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 argumentSpredning 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)) // 6Rest 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)) // 9Hurtig 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.
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
- Rest-parametre i funktioner
- Spread i arrays og objekter
- Rest-elementer i tupler
- Typning af variadiske funktioner