TypeScript Academy · Les

Conditionele typen: T extends U ? X : Y

Schrijf if-instructies op typeniveau met conditionele typen.

Les 3 van 413 stappen

Conditionele typen: T extends U ? X : Y is een gratis TypeScript Academy-les op CoddyKit. Dit is les 3 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.

Welkom

Met conditionele types kun je if-instructies op typeniveau uitdrukken. Ze vormen een belangrijk onderdeel van het geavanceerde typesysteem van TypeScript en worden gebruikt om hulpprogrammatypen te bouwen.

Basissyntaxis

Schrijf T extends U ? X : Y. Als T aan U kan worden toegewezen, is het resultaat X; anders is het Y.
type IsString<T> = T extends string ? true : false;
type A = IsString<string>; // true
type B = IsString<number>; // false

Ingebouwd type NonNullable

NonNullable is geïmplementeerd met een conditioneel type dat null en undefined uit T verwijdert.
type NonNullable<T> = T extends null | undefined ? never : T;
type C = NonNullable<string | null>; // string

Conditionele types met generieke types

Conditionele types zijn het nuttigst binnen generieke functies en type-aliases.
type Flatten<T> = T extends Array<infer I> ? I : T;
type Str = Flatten<string[]>; // string
type Num = Flatten<number>;   // number

Geneste conditionele types

Conditionele types kunnen worden genest voor complexere logica.
type TypeName<T> =
  T extends string ? 'string' :
  T extends number ? 'number' :
  T extends boolean ? 'boolean' :
  'object';

Distributie over unies

Wanneer T een losstaand typeparameter is, wordt een conditioneel type verdeeld over de leden van de unie.
type ToArray<T> = T extends any ? T[] : never;
type R = ToArray<string | number>; // string[] | number[]

Distributie voorkomen

Wikkel T in een tuple om distributie te voorkomen.
type NoDistribute<T> = [T] extends [any] ? T[] : never;
type R2 = NoDistribute<string | number>; // (string | number)[]

never gebruiken om te filteren

Als een conditioneel type never retourneert, worden de leden van de unie verwijderd.
type OnlyStrings<T> = T extends string ? T : never;
type S = OnlyStrings<'a' | 'b' | 1 | 2>; // 'a' | 'b'

Conditionele types in gemapte types

Combineer gemapte types en conditionele types om objecteigenschappen selectief te transformeren.
type NullableValues<T> = { [K in keyof T]: T[K] extends string ? null : T[K] };

Afleiden uit functieparameters

Gebruik infer in conditionele types om delen van complexe types op te halen.
type FirstParam<T> = T extends (first: infer P, ...rest: any[]) => any ? P : never;
type FP = FirstParam<(a: string, b: number) => void>; // string

Ingebouwde conditionele hulpprogramma's

Veel ingebouwde hulpprogramma's (ReturnType, Parameters, InstanceType) zijn gebouwd met conditionele types en infer.
type ReturnType<T extends (...args: any) => any> = T extends (...args: any) => infer R ? R : any;

Kennischeck

Wat is het resultaat van `type R = string extends object ? 'yes' : 'no'`?

Samenvatting

Conditionele types (T extends U ? X : Y) maken logica op typeniveau mogelijk. Ze worden over unies verdeeld, werken voor extractie samen met infer en vormen de basis van veel ingebouwde hulpprogrammatypen van TypeScript.
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 “Conditionele typen: T extends U ? X : Y” gratis?

Ja — de volledige tekst van “Conditionele typen: T extends U ? X : Y” 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 “Conditionele typen: T extends U ? X : Y”?

Schrijf if-instructies op typeniveau met conditionele typen. 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 3 van 4.

Hoe lang duurt de les “Conditionele typen: T extends U ? X : Y”?

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. keyof en typen voor geïndexeerde toegang
  2. Generieke beperkingen: typeparameters verfijnen
  3. Conditionele typen: T extends U ? X : Y
  4. Distributieve conditionele typen
← Terug naar TypeScript Academy