TypeScriptKonfiguracja tsconfig
"strictNullChecks"
Traktuje null i undefined jako osobne typy, wymuszając ich obsługę.
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": trueWięcej przykładów
#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 wczesnereturn, a asercję!zostaw na wyjątkowe sytuacje.
Powiązane hasła
#- "strict"Włącza zestaw najważniejszych, rygorystycznych sprawdzeń kompilatora.
- null i undefinedTypy oznaczające brak wartości, kontrolowane przez strictNullChecks.
- Asercja non-null (!)Wykrzyknik po wyrażeniu usuwa z typu null i undefined bez sprawdzania.
- Zawężanie typówUstalanie dokładniejszego typu wartości na podstawie sprawdzeń w kodzie.
Widzisz błąd albo brakuje przykładu? Napisz do nas.