TypeScript Academy · Lektion

Avancerad typförfining

Lär dig använda avancerade typvakter och kontrollflödesanalys för att enkelt hantera komplexa typvillkor.

Lektion 1 av 310 steg

Avancerad typförfining är en gratis lektion i TypeScript Academy på CoddyKit. Detta är lektion 1 av 3. 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 3 lektioner.

Introduktion till avancerad typavsmalning

Avancerad typavsmalning låter Er förfina komplexa typer under körning med hjälp av avancerade tekniker som type guards, kontrollflödesanalys och anpassade predikat.

Dessa verktyg gör Er TypeScript-kod säkrare och mer förutsägbar.

Avancerad typförfining — illustration 1

Vad är typavsmalning

Vad är typavsmalning?

Typavsmalning är processen att förfina en bredare typ (till exempel string | number) till en mer specifik typ med hjälp av kontroller under körning.

Använda <code>typeof</code> för typavsmalning

Operatorn typeof kan användas för att avgränsa primitiva typer:

function printValue(value: string | number): void {
  if (typeof value === 'string') {
    console.log(`String: ${value}`);
  } else {
    console.log(`Number: ${value}`);
  }
}

printValue('Hello'); // String: Hello
printValue(42); // Number: 42

Använda <code>instanceof</code> för typavsmalning

Operatorn instanceof kan användas för att avgränsa klassinstanser:

class Dog {
  bark() {
    console.log('Woof!');
  }
}

class Cat {
  meow() {
    console.log('Meow!');
  }
}

function makeSound(animal: Dog | Cat): void {
  if (animal instanceof Dog) {
    animal.bark();
  } else {
    animal.meow();
  }
}

makeSound(new Dog()); // Woof!
makeSound(new Cat()); // Meow!

Använda anpassade type guards

Ni kan skapa anpassade type guard-funktioner för att avgränsa typer mer exakt:

type Fish = { swim: () => void };
type Bird = { fly: () => void };

declare const animal: Fish | Bird;

function isFish(animal: Fish | Bird): animal is Fish {
  return (animal as Fish).swim !== undefined;
}

if (isFish(animal)) {
  animal.swim();
} else {
  animal.fly();

Kontrollflödesanalys

TypeScripts kontrollflödesanalys avgränsar automatiskt typer utifrån det logiska flödet i Er kod:

function getLength(value: string | string[]): number {
  if (Array.isArray(value)) {
    return value.length;
  } else {
    return value.length;
  }
}

console.log(getLength('Hello')); // 5
console.log(getLength(['a', 'b', 'c'])); // 3

Fördelar med avancerad typavsmalning

Avancerad typavsmalning förbättrar Er kod genom att:

  • Minska antalet fel under körning.
  • Göra koden säkrare och lättare att förstå.
  • Ge exakt kontroll över typhanteringen.

Övningsuppgift

Skapa en funktion som tar emot en parameter av typen string | number och loggar ett annat meddelande för varje typ. Använd typeof för att implementera logiken.

Grattis

Grattis!

Ni har lärt Er att använda avancerade tekniker för typavsmalning i TypeScript för att förfina och hantera komplexa typer på ett säkert och effektivt sätt. Öva på dessa tekniker för att göra Er kod robustare och typsäkrare!

Avancerad typförfining — illustration 10
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 ”Avancerad typförfining” gratis?

Ja – hela texten till ”Avancerad typförfining” 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 3 lektioner.

Vad lär jag mig i ”Avancerad typförfining”?

Lär dig använda avancerade typvakter och kontrollflödesanalys för att enkelt hantera komplexa typvillkor. 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 1 av 3.

Hur lång tid tar lektionen ”Avancerad typförfining”?

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. Avancerad typförfining
  2. Avancerade klassfunktioner
  3. Villkorstyper
← Tillbaka till TypeScript Academy