NonNullable<Type>

Usuwa z typu null i undefined.

Na tej stronie

Przykład

#
TypeScript
interface Profile {
  name: string
  avatar?: string | null
}

type Avatar = NonNullable<Profile['avatar']>
// type Avatar = string

const avatars = [null, 'ania.webp', undefined, 'kuba.webp']
const present = avatars.filter((a): a is Avatar => a != null)

console.log(present)
Wynik
['ania.webp', 'kuba.webp']

Definicja i zastosowanie

#

NonNullable<Type> zwraca typ bez null i undefined. Dla string | null | undefined wynikiem jest string.

Przydaje się przy typach wyprowadzonych z innych typów, na przykład z opcjonalnego pola (NonNullable<User["avatar"]>) albo z wyniku funkcji, która czasem zwraca null.

Nie sprawdza niczego w działającym programie. Żeby wartość rzeczywiście nie była pusta, nadal potrzebne jest zawężenie, np. filtrowanie tablicy.

Składnia

#
Składnia
type Nowy = NonNullable<Typ>

Parametry typu

#
  • Type

    dowolny typ

    Typ, z którego usuwasz null i undefined.

Dobre praktyki

#
  • Porównanie a != null (z pojedynczym =) odrzuca jednocześnie null i undefined.
  • Od TypeScriptu 5.5 filtr a => a != null sam zawęża typ tablicy, bez jawnego predykatu.

Powiązane hasła

#

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