Generieke functies en beperkingen (extends, standaardparameters)
Maak generieke functies, voeg beperkingen toe met extends en gebruik standaardtypeparameters voor gebruiksvriendelijke API's.
Generieke functies en beperkingen (extends, standaardparameters) is een gratis TypeScript Academy-les op CoddyKit. Dit is les 1 van 3. 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 3 lessen.
Introductie
Doel: Maak functies herbruikbaar en typeveilig met generieke typen. Je definieert typeparameters, voegt beperkingen met extends toe en stelt standaardtypeparameters in voor een betere ontwikkelervaring.
Identiteitsfunctie met generiek type
Definieer een typeparameter <T>. De compiler leidt T af uit de argumenten, zodat aanroepers dit zelden hoeven te annoteren.
function identity<T>(x: T): T {
return x;
}
const a = identity(42); // T inferred as number
const b = identity("ts"); // T inferred as string
console.log(a, b);Beperking met extends
Gebruik extends om een structuur, zoals een id, te vereisen. T kan dankzij structurele typering meer velden bevatten.
function getId<T extends { id: number }>(item: T): number {
return item.id;
}
getId({ id: 1, name: "Ada" }); // OK (has id)
// getId({ name: "Lin" }); // Error: missing idKeyof-beperking
Beperk K met keyof T zodat alleen eigenschapsnamen uit T zijn toegestaan. Het retourtype is het type van de eigenschap: T[K].
function pluck<T, K extends keyof T>(obj: T, key: K): T[K] {
return obj[key];
}
const user = { id: 7, name: "Neo" };
const v1 = pluck(user, "name"); // string
const v2 = pluck(user, "id"); // number
console.log(v1, v2);Standaardtypeparameters
Standaardtypeparameters verminderen overbodige code. Aanroepers kunnen <T> in veelvoorkomende gevallen weglaten, maar het type nog steeds overschrijven wanneer dat nodig is.
interface Box<T = string> {
value: T;
}
const aBox: Box = { value: "hi" }; // T defaults to string
const nBox: Box<number> = { value: 123 }; // explicit override
console.log(aBox.value, nBox.value);Tips
Tips:
- Laat typeafleiding het werk doen; vermijd overbodige T-annotaties.
- Voeg extends alleen toe wanneer de implementatie leden van T nodig heeft.
- Geef standaardwaarden voor gebruiksvriendelijke, veelvoorkomende gevallen.
Controle van beperkingen
Korte controle: Wat garandeert T extends { id: number }?
Samenvatting
Samenvatting: Definieer generieke functies, leg beperkingen op met extends en stel standaardtypeparameters in om API's flexibel en gebruiksvriendelijk te houden.
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 “Generieke functies en beperkingen (extends, standaardparameters)” gratis?
Ja — de volledige tekst van “Generieke functies en beperkingen (extends, standaardparameters)” 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 3 lessen.
Wat leer ik in “Generieke functies en beperkingen (extends, standaardparameters)”?
Maak generieke functies, voeg beperkingen toe met extends en gebruik standaardtypeparameters voor gebruiksvriendelijke API's. 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 3.
Hoe lang duurt de les “Generieke functies en beperkingen (extends, standaardparameters)”?
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
- Generieke functies en beperkingen (extends, standaardparameters)
- Partial, Readonly, Record, Pick, Omit
- keyof en geïndexeerde toegangstypen (introductie)