Для расширяемых вариантов ответа используйте discriminated union: общий type и отдельные поля для каждого вида, включая video.
Допустим, залетает новый тип варианта ответа (например, видео) — как это учесть в структуре данных, которую мы заложили?
Для расширяемых вариантов ответа используйте discriminated union: общий type и отдельные поля для каждого вида, включая video.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Для расширяемых вариантов ответа используйте discriminated union: общий type и отдельные поля для каждого вида, включая video.
Например, текст содержит text, видео — ссылку или assetId и метаданные. По type выбирают валидатор, renderer и обработчик, а неизвестный вид отображают безопасным fallback. Проверьте совместимость API, хранения и старых клиентов; не ограничивайтесь добавлением ещё одного необязательного поля в общий объект.