Skip to main content

Що робить NonNullable<T>?

Визначення

У стандартній бібліотеці він реалізований так:

javascript
type NonNullable<T> = T extends null | undefined ? never : T;

Тобто: якщо T - null або undefined, результат never; інакше повертається сам T.


Приклади використання

javascript
type A = NonNullable<string | null | undefined>; // string type B = NonNullable<number | undefined>; // number type C = NonNullable<null | undefined>; // never type D = NonNullable<string | null>; // string

Практичне застосування

  1. Безпечне звернення до значень після перевірки:
javascript
function getLength(value: string | null) { if (value) { let safe: NonNullable<typeof value> = value; // тепер точно string return safe.length; } return 0; }
  1. Типізація API-відповідей після фільтрації null:
javascript
const users = [ "Tom", null, "Bob" ]; const valid = users.filter(Boolean) as NonNullable<typeof users[number]>[]; // valid: string[]
  1. У поєднанні з іншими utility-типами:
javascript
type User = { name?: string | null }; type SafeUser = NonNullable<User["name"]>; // string

Коротко

UtilityПризначення
NonNullable<T>Прибирає null і undefined
Partial<T>Робить усі поля опціональними
Required<T>Робить усі поля обов'язковими
Readonly<T>Робить усі поля тільки для читання
Extract<T, U>Залишає перетин типів
Exclude<T, U>Прибирає перетин типів

Коротка відповідь

Для співбесіди
Premium

Коротка відповідь допоможе вам впевнено відповідати на цю тему під час співбесіди.