TypeScript Academy · Lektion

Readonly, Exclude, Extract, NonNullable

Använd fler utility types för oföränderlighet och filtrering

Lektion 4 av 413 steg

Readonly, Exclude, Extract, NonNullable är en gratis lektion i TypeScript Academy på CoddyKit. Detta är lektion 4 av 4. Ni kan läsa hela lektionen gratis nedan och sedan öva praktiskt i webbläsaren med en inbyggd kodredigerare och en AI-handledare som är tillgänglig dygnet runt. Den ingår i lärvägen för TypeScript Academy, och Era framsteg synkroniseras mellan webben och CoddyKit-appen. Kursen i TypeScript Academy innehåller totalt 4 lektioner.

Välkommen

TypeScript-standardbiblioteket innehåller flera verktygstyper utöver Partial, Required, Pick och Omit. Den här lektionen behandlar Readonly, Exclude, Extract och NonNullable.

Readonly<T>

Gör alla egenskaper i T skrivskyddade. Förhindrar att någon egenskap tilldelas ett nytt värde efter skapandet.
interface Config { host: string; port: number; }
const cfg: Readonly<Config> = { host: 'localhost', port: 3000 };
// cfg.host = 'remote'; // Error!

Exclude<T, U>

Tar bort alla medlemmar från unionen T som kan tilldelas till U.
type Status = 'pending' | 'active' | 'banned' | 'deleted';
type ActiveStatus = Exclude<Status, 'banned' | 'deleted'>;
// 'pending' | 'active'

Extract<T, U>

Behåller endast de medlemmar i unionen T som kan tilldelas till U. Motsatsen till Exclude.
type StringOrNumber = string | number | boolean;
type JustStrNum = Extract<StringOrNumber, string | number>;
// string | number

NonNullable<T>

Tar bort null och undefined från T.
type MaybeString = string | null | undefined;
type DefinitelyString = NonNullable<MaybeString>; // string

ReturnType<T>

Extraherar returtypen från en funktionstyp T.
function fetchUser() { return { id: 1, name: 'Alice' }; }
type User = ReturnType<typeof fetchUser>; // { id: number; name: string }

Parameters<T>

Extraherar parametertyperna från en funktion som en tupel.
function add(a: number, b: number): number { return a + b; }
type AddParams = Parameters<typeof add>; // [number, number]

InstanceType<T>

Hämtar instanstypen som skapas av en konstruktorsfunktionstyp.
class HttpClient { get(url: string) { return fetch(url); } }
type Client = InstanceType<typeof HttpClient>; // HttpClient

Awaited<T>

Packar upp nästlade Promise-typer.
type A = Awaited<Promise<string>>;          // string
type B = Awaited<Promise<Promise<number>>>;  // number

Använda flera verktygstyper tillsammans

Kedja verktygstyper för komplexa omvandlingar.
type SafeInput<T> = Readonly<Partial<NonNullable<T>>>;

Verktygstyper är bara typalias

Alla inbyggda verktygstyper implementeras med mappade typer, villkorstyper och infer. Du kan skapa egna verktygstyper.

Snabbkontroll

Vad skapar `Exclude<'a' | 'b' | 'c', 'b'>`?

Sammanfattning

Readonly förhindrar ändringar. Exclude tar bort unionsmedlemmar. Extract behåller matchande medlemmar. NonNullable tar bort nullbara typer. ReturnType, Parameters och InstanceType extraherar typinformation om funktioner och klasser.
Gratis att börja

Lär dig TypeScript med en AI-lärare – gratis

Skriv och kör riktig kod i webbläsaren, få omedelbar hjälp av en AI-lärare dygnet runt och fortsätt där du slutade – på webben eller i appen.

Kurser
101
Lektioner
352

Vanliga frågor

Är lektionen ”Readonly, Exclude, Extract, NonNullable” gratis?

Ja – hela texten till ”Readonly, Exclude, Extract, NonNullable” kan läsas gratis här på webben. Om Ni vill öva interaktivt med en inbyggd kodredigerare och en AI-handledare som är tillgänglig dygnet runt och låsa upp resten av kursen i TypeScript Academy, kan Ni uppgradera till CoddyKit PRO. Kursen i TypeScript Academy innehåller totalt 4 lektioner.

Vad lär jag mig i ”Readonly, Exclude, Extract, NonNullable”?

Använd fler utility types för oföränderlighet och filtrering Ni övar på TypeScript Academy med praktisk kod som körs direkt i webbläsaren, medan en AI-handledare som är tillgänglig dygnet runt svarar på Era frågor under lektionen.

Behöver jag någon erfarenhet för att börja lära mig TypeScript Academy?

Du behöver inga förkunskaper. Utbildningen i TypeScript Academy på CoddyKit är upplagd för allt från nybörjare till avancerade elever, så att du kan börja här eller från början och gå fram i din egen takt. Detta är lektion 4 av 4.

Hur lång tid tar lektionen ”Readonly, Exclude, Extract, NonNullable”?

De flesta CoddyKit-lektioner tar cirka 5–10 minuter. Varje lektion är kort och interaktiv, så att du gör stadiga framsteg och kan fortsätta precis där du slutade – på webben eller i appen.

Kan jag skriva och köra kod i den här TypeScript Academy-lektionen?

Ja. Varje TypeScript Academy-lektion innehåller en inbyggd kodredigerare, så att du kan skriva och köra riktig kod direkt i webbläsaren och få omedelbar AI-feedback – utan lokal installation.

Alla lektioner i den här kursen

  1. Partial och Required: växla valfrihet
  2. Pick och Omit: välj egenskaper
  3. Record: mappa nycklar till värdetyper
  4. Readonly, Exclude, Extract, NonNullable
← Tillbaka till TypeScript Academy