typeof, równość i zawężanie przez truthiness
Używanie typeof, ścisłej równości i truthiness do zawężania typów unii bez niebezpiecznych rzutowań
typeof, równość i zawężanie przez truthiness to bezpłatna lekcja TypeScript Academy na CoddyKit. To lekcja 1 z 3. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej TypeScript Academy, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs TypeScript Academy zawiera 3 lekcji w sumie.
Wprowadzenie
Cel: Zawężać szerokie typy unii do dokładnych typów za pomocą typeof, ścisłej równości i truthiness. Umożliwia to bezpieczny dostęp do właściwości i metod.
Zawężanie przez typeof
typeof zawęża typy prymitywne (string, number, boolean, bigint, symbol, undefined). Należy używać go do bezpiecznego rozgałęziania logiki.
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);Ścisła równość
Należy preferować ===/!== w celu precyzyjnego zawężania; należy unikać ==, które wymusza konwersję i wprowadza w błąd zarówno ludzi, jak i kompilator.
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);Zawężanie przez truthiness
Truthiness również zawęża typy, ale należy uważać: "" i 0 są wartościami falsy, mimo że są poprawnymi wartościami. Gdy trzeba je rozróżnić, należy używać ścisłych kontroli.
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);Łączenie kontroli
Kontrole można łączyć, aby zabezpieczyć zagnieżdżony dostęp. Dla większej precyzji należy preferować jawne u !== null && u !== undefined, gdy 0/"" są poprawnymi przypadkami.
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);Wskazówki
Wskazówki:
- Należy używać typeof dla typów prymitywnych.
- Należy używać ===/!==, aby uniknąć wymuszania konwersji.
- Truthiness jest zwięzłe, ale należy go unikać, gdy puste ciągi znaków lub zero mają znaczenie.
Sprawdzenie zawężania
Szybkie sprawdzenie: Która kontrola prawidłowo zawęża wartość do typu string?
Podsumowanie
Podsumowanie: Typy należy zawężać za pomocą typeof, ścisłej równości i truthiness. Gdy 0/"" są poprawnymi wartościami, należy preferować jawne kontrole.
Ucz się TypeScript dzięki korepetycjom AI — za darmo
Pisz i uruchamiaj kod w przeglądarce, otrzymuj natychmiastową pomoc od korepetytora AI dostępnego 24/7 i kontynuuj naukę w sieci lub w aplikacji.
- Kursy
- 101
- Lekcje
- 352
Często zadawane pytania
Czy lekcja „typeof, równość i zawężanie przez truthiness” jest bezpłatna?
Tak — pełny tekst „typeof, równość i zawężanie przez truthiness” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu TypeScript Academy, przejdź na CoddyKit PRO. Kurs TypeScript Academy zawiera 3 lekcji w sumie.
Co nauczysz się w „typeof, równość i zawężanie przez truthiness”?
Używanie typeof, ścisłej równości i truthiness do zawężania typów unii bez niebezpiecznych rzutowań Ćwiczysz TypeScript Academy z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.
Czy potrzebuję doświadczenia, aby zacząć TypeScript Academy?
Nie wymagamy żadnego doświadczenia. TypeScript Academy w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 1 z 3.
Ile czasu zajmuje lekcja „typeof, równość i zawężanie przez truthiness”?
Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.
Czy mogę pisać i uruchamiać kod w tej lekcji TypeScript Academy?
Tak. Każda lekcja TypeScript Academy zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.
Wszystkie lekcje w tym kursie
- typeof, równość i zawężanie przez truthiness
- in, instanceof i unie rozróżniane
- Kompletność z never — wprowadzenie