"strictNullChecks"

Traktuje null i undefined jako osobne typy, wymuszając ich obsługę.

Na tej stronie

Przykład

#
TypeScript
const scores = new Map([['ania', 92]])

const kuba = scores.get('kuba')
// const kuba: number | undefined

console.log(kuba ?? 'brak wyniku')
console.log(scores.get('ania')?.toFixed(1))
Wynik
brak wyniku
92.0

Definicja i zastosowanie

#

Przy włączonej opcji strictNullChecks wartości null i undefined nie pasują do innych typów. Jeśli coś może być puste, musi mieć to w typie (string | null), a przed użyciem trzeba to sprawdzić.

Bez tej opcji kompilator pozwala przypisać null do każdej zmiennej i nie ostrzega przed odczytem właściwości z pustej wartości. Wtedy błędy „Cannot read properties of null” wychodzą dopiero u użytkowników.

To jedno z najcenniejszych sprawdzeń, część trybu strict. Zmusza do obsługi przypadków brzegowych: braku elementu na stronie, braku użytkownika czy pustego wyniku wyszukiwania.

Składnia

#
Składnia
"strictNullChecks": true

Więcej przykładów

#
Błąd bez sprawdzenia
TypeScript
const button = document.querySelector('button')
button.addEventListener('click', () => {})
// Błąd: 'button' is possibly 'null'.

Dobre praktyki

#
  • Nie wyłączaj strictNullChecks. Chroni przed najczęstszym rodzajem błędów w JavaScripcie.
  • Obsługuj pustą wartość przez ?. i ?? albo wczesne return, a asercję ! zostaw na wyjątkowe sytuacje.

Powiązane hasła

#

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