TypeScript Academy · Lektion

typeof, likhet och sanningsvärdebaserad förfining

Använd typeof, strikt likhet och sanningsvärden för att förfina unionstyper utan osäkra typkonverteringar.

Lektion 1 av 38 steg

typeof, likhet och sanningsvärdebaserad fö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

Mål: Förfina breda unionstyper till exakta typer med hjälp av typeof, strikt likhet och truthiness. Det möjliggör säker åtkomst till egenskaper och metoder.

typeof-förfining

typeof förfinar primitiva typer (string, number, boolean, bigint, symbol, undefined). Använd det för säker förgrening.

function printLen(x: string | number) {
  if (typeof x === "string") {
    console.log(x.length); // x is string
  } else {
    console.log(x.toFixed(2)); // x is number
  }
}

printLen("TS");
printLen(3.14);

Strikt likhet

Föredra ===/!== för exakt typförfining. Undvik ==, som gör typomvandling och förvirrar både människor och kompilatorn.

function greet(x: string | null) {
  if (x !== null) {
    // x is string here
    console.log("Hello " + x.toUpperCase());
  } else {
    console.log("No name");
  }
}

greet("Ada");
greet(null);

Förfining med truthiness

Truthiness förfinar också typer, men var uppmärksam: "" och 0 är falsy trots att de är giltiga värden. Använd strikta kontroller när de måste skiljas åt.

function show(v: string | 0 | "" | null | undefined) {
  if (v) {
    // v is string here (non-empty)
    console.log("value:", v);
  } else {
    // v is "", 0, null, or undefined
    console.log("empty");
  }
}

show("ok");
show("");
show(0);

Kombinera kontroller

Kombinera kontroller för att skydda nästlad åtkomst. För mer exakt kontroll bör u !== null && u !== undefined föredras när 0/"" är giltiga fall.

type MaybeUser = { name: string } | null | undefined;

function hi(u: MaybeUser) {
  if (u && u.name) {
    console.log("Hi " + u.name);
  } else {
    console.log("No user");
  }
}

hi({ name: "Lin" });
hi(null);

Riktlinjer

Riktlinjer:

  • Använd typeof för primitiva typer.
  • Använd ===/!== för att undvika typomvandling.
  • Truthiness är kortfattat, men bör undvikas när tomma strängar eller noll har betydelse.

Kontroll av typförfining

Snabb kontroll: Vilken kontroll förfinar ett värde korrekt till string?

Sammanfattning

Sammanfattning: Förfina typer med typeof, strikt likhet och truthiness. Föredra explicita kontroller när 0/"" är giltiga värden.

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 ”typeof, likhet och sanningsvärdebaserad förfining” gratis?

Ja – hela texten till ”typeof, likhet och sanningsvärdebaserad fö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 ”typeof, likhet och sanningsvärdebaserad förfining”?

Använd typeof, strikt likhet och sanningsvärden för att förfina unionstyper utan osäkra typkonverteringar. 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 ”typeof, likhet och sanningsvärdebaserad fö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. typeof, likhet och sanningsvärdebaserad förfining
  2. in, instanceof och diskriminerade unioner
  3. Fullständighet med never (introduktion)
← Tillbaka till TypeScript Academy