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.
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.
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
- typeof, likhet och sanningsvärdebaserad förfining
- in, instanceof och diskriminerade unioner
- Fullständighet med never (introduktion)