Напишите type guard для интерфейсов User и Admin, который проверяет, что переданный пользователь действительно является администратором.

Type guard должен проверять реальный признак Admin; без определений интерфейсов его нельзя выбрать достоверно.

Короткий ответ

Что ответить на собеседовании

Type guard должен проверять реальный признак Admin; без определений интерфейсов его нельзя выбрать достоверно.

Подробный разбор

Ответ с пояснениями

Type guard должен проверять реальный признак Admin; без определений интерфейсов его нельзя выбрать достоверно.

Например, при union с discriminant role: 'user' | 'admin' можно вернуть user.role === 'admin' в функции с предикатом user is Admin. Для неизвестного JSON сначала проверяют объект и поля; такой клиентский guard не заменяет серверную авторизацию.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее