TypeScript · Middle · Запитання 1 з 75

Що таке користувацький type guard?

function isUser(x: unknown): x is User {
  return typeof x === "object" && x !== null && "id" in x;
}

Пояснення

Після if (isUser(data)) усередині гілки data має тип User. Відповідальність за коректність перевірки на розробникові: компілятор повірить предикату. З TS 5.5 прості предикати виводяться автоматично, наприклад у arr.filter(x => x !== null).

Де почитати

Помилка в запитанні

TypeScript · Middle · запитання 1

Перевірте себе

Пройдіть тест TypeScript · Middle: запитання й варіанти перемішуються, а наприкінці - розбір помилок.

Пройти цей тест