0Pricing
TypeScript Academy · Lekcja

null, undefined i ścisłe sprawdzanie wartości null

Proszę bezpiecznie obsługiwać null i undefined w trybie ścisłym.

null, undefined i ścisłe sprawdzanie wartości null to bezpłatna lekcja TypeScript Academy na CoddyKit. To lekcja 4 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

W JavaScript wartości null i undefined są częstymi źródłami błędów w czasie działania. Ścisłe sprawdzanie wartości null w TypeScript wymusza ich jawne obsłużenie.

null a undefined

`undefined` oznacza, że zmienna została zadeklarowana, ale nie przypisano jej wartości. `null` oznacza zamierzony brak wartości. W TypeScript oba są odrębnymi typami.
let a: undefined = undefined;
let b: null = null;

Bez ścisłego sprawdzania wartości null

Bez `strictNullChecks` wartości null i undefined są podtypami każdego typu. Jest to ustawienie domyślne w starszych wersjach TypeScriptu i zazwyczaj jest niebezpieczne.
// strictNullChecks: false (unsafe default)
let name: string = null; // allowed — dangerous!

Włączanie ścisłego sprawdzania wartości null

Przy `strictNullChecks: true` (zawartym w `strict`) null i undefined można przypisać wyłącznie do ich własnych typów lub jawnie określonych typów unii.
// strictNullChecks: true
let name: string = null; // Error!
let maybeName: string | null = null; // OK

Właściwości opcjonalne

Właściwości obiektów oznaczone symbolem `?` mają niejawnie typ `T | undefined`. Należy obsłużyć przypadek, w którym ich brakuje.
interface Config {
  host: string;
  port?: number; // number | undefined
}

const c: Config = { host: 'localhost' };
console.log(c.port?.toString()); // optional chaining

Zawężanie typów dopuszczających null

Przed uzyskaniem dostępu do właściwości należy użyć instrukcji if, aby zawęzić unię zawierającą null lub undefined.
function greet(name: string | null): string {
  if (name === null) return 'Guest';
  return 'Hello, ' + name;
}

Łańcuchowanie opcjonalne (?.)

Operator `?.` zwraca natychmiast `undefined`, jeśli lewa strona ma wartość null lub undefined, dzięki czemu zapobiega awarii w czasie działania.
const user = getUser();
const city = user?.address?.city; // undefined if any step is null

Operator ??

Operator `??` zwraca prawą stronę tylko wtedy, gdy lewa strona ma wartość null lub undefined — w przeciwieństwie do `||`, który reaguje na każdą wartość falsy.
const port = config.port ?? 3000; // 3000 if port is null/undefined
const label = name ?? 'Anonymous';

Operator asercji niebędącej null (!)

Postfiksowy operator `!` informuje TypeScript, że mają Państwo pewność, iż wartość nie jest null ani undefined. Należy używać go wyłącznie przy absolutnej pewności.
const el = document.getElementById('root')!;
el.textContent = 'Loaded'; // no null check needed

Zwracanie null a undefined

Należy preferować zwracanie `null` jako oznaczenia zamierzonego pustego wyniku, a `undefined` dla brakujących lub opcjonalnych wartości. W całej bazie kodu należy zachować spójność.
function findUser(id: number): User | null {
  return db.find(u => u.id === id) ?? null;
}

strictNullChecks zapobiega błędowi wartemu miliardy dolarów

Tony Hoare nazwał null swoim „błędem wartym miliardy dolarów”. TypeScript, dzięki strictNullChecks, zapobiega awariom powodowanym przez null/undefined, wymuszając jawne obsłużenie tych wartości.

Szybkie sprawdzenie

Co operator `??` (operator koalescencji wartości nullish) zwraca po prawej stronie?

Podsumowanie

Należy włączyć strictNullChecks, aby zapobiegać błędom związanym z null/undefined. Należy używać typów unii do dopuszczania wartości null, łańcuchowania opcjonalnego (?.) do bezpiecznego przechodzenia oraz koalescencji nullish (??) do dostarczania wartości domyślnych.

Często zadawane pytania

Czy lekcja „null, undefined i ścisłe sprawdzanie wartości null” jest bezpłatna?

Tak — pełny tekst „null, undefined i ścisłe sprawdzanie wartości null” 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 „null, undefined i ścisłe sprawdzanie wartości null”?

Proszę bezpiecznie obsługiwać null i undefined w trybie ścisłym. Ć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 4 z 4.

Ile czasu zajmuje lekcja „null, undefined i ścisłe sprawdzanie wartości null”?

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

  1. Typy prymitywne: string, number, boolean
  2. Typ any i powody, by go unikać
  3. unknown a any: bezpieczniejszy wybór
  4. null, undefined i ścisłe sprawdzanie wartości null
← Powrót do TypeScript Academy