unknown a any: bezpieczniejszy wybór
Proszę poznać, dlaczego unknown wymusza sprawdzenie typów przed użyciem.
unknown a any: bezpieczniejszy wybór to bezpłatna lekcja TypeScript Academy na CoddyKit. To lekcja 3 z 4. 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 4 lekcji w sumie.
Wprowadzenie
Problem z any
let val: any = getData();
val.someMethod(); // TypeScript: OK. Runtime: possible crashWprowadzenie typu unknown
let val: unknown = getData();
// val.someMethod(); // Error: Object is of type 'unknown'Zawężanie unknown przed użyciem
let input: unknown = getInput();
if (typeof input === 'string') {
console.log(input.toUpperCase()); // OK — narrowed to string
}unknown nie można przypisać do konkretnych typów
let x: unknown = 'hello';
// let s: string = x; // Error
let s: string = x as string; // OK with assertionUżywanie unknown w blokach catch
try {
doSomething();
} catch (err: unknown) {
if (err instanceof Error) {
console.log(err.message); // safe
}
}unknown dla danych zewnętrznych
const raw: unknown = JSON.parse(text);
if (
typeof raw === 'object' &&
raw !== null &&
'name' in raw
) {
console.log((raw as any).name);
}Strażnicy typów dla unknown
function isUser(val: unknown): val is { name: string } {
return typeof val === 'object' && val !== null && 'name' in val;
}unknown a never
// unknown: anything can be assigned to it
let a: unknown = 42; // OK
// never: nothing can be assigned to it
function fail(): never { throw new Error(); }Wybór między any a unknown
Biblioteki do walidacji w czasie działania
import { z } from 'zod';
const UserSchema = z.object({ name: z.string(), age: z.number() });
const user = UserSchema.parse(unknownData); // throws if invalidSzybkie sprawdzenie
Podsumowanie
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 „unknown a any: bezpieczniejszy wybór” jest bezpłatna?
Tak — pełny tekst „unknown a any: bezpieczniejszy wybór” 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 4 lekcji w sumie.
Co nauczysz się w „unknown a any: bezpieczniejszy wybór”?
Proszę poznać, dlaczego unknown wymusza sprawdzenie typów przed użyciem. Ć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 3 z 4.
Ile czasu zajmuje lekcja „unknown a any: bezpieczniejszy wybór”?
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
- Typy prymitywne: string, number, boolean
- Typ any i powody, by go unikać
- unknown a any: bezpieczniejszy wybór
- null, undefined i ścisłe sprawdzanie wartości null