Letterlijke typen voor strings en getallen
Beperk waarden met literal types tot exacte strings en getallen
Letterlijke typen voor strings en getallen 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.
Wat is een letterlijk type?
De meeste typen beschrijven een verzameling waarden. string betekent elke tekenreeks en number betekent elk getal. Een letterlijk type beperkt dit tot één exacte waarde.
Het type 'north' staat alleen de tekenreeks 'north' toe — niets anders. Met letterlijke typen kun je precieze, eindige verzamelingen toegestane waarden rechtstreeks in het typesysteem modelleren.
let dir: 'north' = 'north';
console.log(dir);
// dir = 'south'; // Error: not assignable to type 'north'Letterlijke tekenreeksunies
Een enkel letterlijk type is op zichzelf niet erg nuttig. Combineer er meerdere met | om een unie van letterlijke typen te vormen. Dit is de gebruikelijke manier om een vaste verzameling opties te modelleren.
Direction hieronder kan altijd maar een van vier exacte tekenreeksen zijn.
type Direction = 'north' | 'south' | 'east' | 'west';
let heading: Direction = 'east';
console.log('Heading:', heading);
heading = 'west';
console.log('Now:', heading);Ongeldige waarden afwijzen
De kracht van unies van letterlijke typen is dat de compiler alles buiten de toegestane verzameling afwijst. Typefouten en ongeldige opties worden compileerfouten in plaats van fouten tijdens runtime.
type Direction = 'north' | 'south' | 'east' | 'west';
let heading: Direction = 'north';
console.log(heading);
// heading = 'up'; // Error: '"up"' is not assignable to 'Direction'Letterlijke typen als functieparameters
Gebruik unies van letterlijke typen voor functieparameters die alleen specifieke waarden accepteren. De aanroeper krijgt automatische aanvulling en kan niets ongeldigs doorgeven.
type Direction = 'north' | 'south' | 'east' | 'west';
function move(dir: Direction): string {
return 'Moving ' + dir;
}
console.log(move('south'));
// console.log(move('left')); // ErrorNumerieke letterlijke typen
Letterlijke typen zijn niet alleen bedoeld voor tekenreeksen. Je kunt ook exacte getallen gebruiken. Een klassiek voorbeeld is een dobbelsteen met zes zijden, waarvan de waarde op de bovenkant een van 1 tot en met 6 moet zijn.
type Dice = 1 | 2 | 3 | 4 | 5 | 6;
function roll(): Dice {
return (Math.floor(Math.random() * 6) + 1) as Dice;
}
console.log('Rolled:', roll());Numerieke letterlijke typen in parameters
Unies van numerieke letterlijke typen beperken de invoer tot een exacte verzameling getallen — ideaal voor bijvoorbeeld kwaliteitsniveaus, codes die op HTTP-codes lijken of rastergroottes.
type Quality = 1 | 2 | 3;
function setQuality(level: Quality): void {
console.log('Quality set to', level);
}
setQuality(2);
// setQuality(5); // Error: 5 is not 1 | 2 | 3Tekenreeks- en numerieke letterlijke typen combineren
Een unie kan verschillende soorten letterlijke typen combineren. Dat is handig voor API's die een benoemde voorinstelling of een onbewerkte waarde accepteren.
type Size = 'small' | 'large' | 0 | 100;
function resize(s: Size): void {
console.log('Resizing to', s);
}
resize('small');
resize(100);Booleaanse letterlijke typen
Ook booleaanse waarden hebben letterlijke typen: true en false zijn zowel typen als waarden. Het volledige type boolean is eigenlijk gewoon true | false.
type AlwaysOn = true;
let enabled: AlwaysOn = true;
console.log('Enabled:', enabled);
// enabled = false; // Error: false not assignable to trueLetterlijke typen verbeteren de documentatie
Een unie van letterlijke typen doet ook dienst als documentatie. Wie type Status = 'idle' | 'loading' | 'done' leest, kent meteen elke mogelijke toestand — geen giswerk en geen magische tekenreeksen verspreid over de code.
type Status = 'idle' | 'loading' | 'done';
function render(s: Status): string {
return 'State is: ' + s;
}
console.log(render('loading'));Letterlijke typen combineren met andere typen
Je kunt letterlijke typen in een unie combineren met algemenere typen. Een gebruikelijk patroon is 'auto' | number, wat betekent: ofwel het speciale sleutelwoord 'auto', ofwel een willekeurig getal.
type Width = 'auto' | number;
function setWidth(w: Width): void {
console.log('Width:', w);
}
setWidth('auto');
setWidth(320);Letterlijke typen als benoemde constanten
Letterlijke typen combineren uitstekend met benoemde constanten. Definieer het type één keer, gebruik het overal opnieuw en pas het veilig aan. De compiler houdt elk gebruik consistent.
type Theme = 'light' | 'dark';
const DEFAULT_THEME: Theme = 'dark';
function applyTheme(t: Theme): void {
console.log('Applying', t, 'theme');
}
applyTheme(DEFAULT_THEME);Korte controle
Controleer je begrip van letterlijke typen.
Samenvatting: letterlijke typen
Je hebt geleerd dat:
- Letterlijke typen één exacte waarde vertegenwoordigen, bijvoorbeeld
'north'of6. - Door letterlijke typen te combineren met
|ontstaat een eindige unie van toegestane waarden. - Ze werken voor tekenreeksen, getallen en booleaanse waarden en kunnen worden gecombineerd met algemenere typen, zoals
'auto' | number. - Als functieparameters zorgen ze voor automatische aanvulling en wijzen ze ongeldige invoer al tijdens het compileren af.
Vervolgens bekijken we hoe TypeScript beslist tussen letterlijke en verbrede typen.
type Direction = 'north' | 'south' | 'east' | 'west';
type Dice = 1 | 2 | 3 | 4 | 5 | 6;
function describe(d: Direction, n: Dice): string {
return 'Go ' + d + ' ' + n + ' steps';
}
console.log(describe('north', 3));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 “Letterlijke typen voor strings en getallen” gratis?
Ja — de volledige tekst van “Letterlijke typen voor strings en getallen” 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 “Letterlijke typen voor strings en getallen”?
Beperk waarden met literal types tot exacte strings en getallen 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 “Letterlijke typen voor strings en getallen”?
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
- Letterlijke typen voor strings en getallen
- Booleaanse literals en literal inference
- const-asserties met as const
- Literals combineren in unions