Вопрос проверяет понимание discriminated union и проектирование типовой модели.
Короткий ответ
Общий тип пользователя удобно описывать через discriminated union. Для этого вводится общее поле-дискриминатор. По нему TypeScript понимает, с каким вариантом типа работает код. Такой подход безопасен и хорошо масштабируется. Он часто используется в реальных проектах.
Длинный ответ
Зарегистрироваться
Развернутый ответ доступен только зарегистрированным пользователям.