TypeScriptTypy podstawowe

null i undefined

Typy oznaczające brak wartości, kontrolowane przez strictNullChecks.

Na tej stronie

Przykład

#
TypeScript
function findUser(id: number): { name: string } | null {
  return id === 1 ? { name: 'Ania' } : null
}

const user = findUser(2)
console.log(user?.name ?? 'Gość')
console.log(findUser(1)?.name)
Wynik
Gość
Ania

Definicja i zastosowanie

#

W TypeScripcie null i undefined mają własne typy. Przy włączonej opcji strictNullChecks (część trybu strict) nie da się ich przypisać do zmiennej typu string czy number. Jeśli wartość może nie istnieć, trzeba to zapisać wprost: string | null.

Dzięki temu kompilator wymusza obsługę braku wartości. Zanim odczytasz właściwość, musisz sprawdzić, czy obiekt istnieje, albo użyć operatorów ?. i ??.

Konwencja w wielu projektach: undefined oznacza „nie ustawiono” (na przykład pominięte pole opcjonalne), a null oznacza „celowo pusto” (na przykład brak awatara).

Składnia

#
Składnia
let wartosc: string | null = null
let opcjonalna: number | undefined

Więcej przykładów

#
Kompilator wymusza sprawdzenie
TypeScript
const avatar: string | null = null
console.log(avatar.length)
// Błąd: 'avatar' is possibly 'null'.

Dobre praktyki

#
  • Trzymaj włączone strictNullChecks. To jedna z najcenniejszych ochron przed błędami „cannot read properties of undefined”.
  • Operator ?? zwraca prawą stronę tylko dla null i undefined, nie dla 0 i pustego napisu.

Powiązane hasła

#

Widzisz błąd albo brakuje przykładu? Napisz do nas.