TypeScript · Middle · Запитання 1 з 75
Що таке користувацький type guard?
function isUser(x: unknown): x is User {
return typeof x === "object" && x !== null && "id" in x;
}- ✓Правильна відповідь: Функція з типом результату
x is T, що звужує тип аргументу заtrue - 2Декоратор, що перевіряє тип аргументу в рантаймі за кожного виклику
- 3Синтаксис твердження типу, еквівалентний запису
x as Userу коді
Пояснення
Після if (isUser(data)) усередині гілки data має тип User. Відповідальність за коректність перевірки на розробникові: компілятор повірить предикату. З TS 5.5 прості предикати виводяться автоматично, наприклад у arr.filter(x => x !== null).