Код Junior Объединения и сужение обновлено
Ответ API как union: loading, error, success
Условие
Опиши RemoteData<T> как union по state: idle, loading, error (с message: string и retryable: boolean), success (с data: T).
Напиши describe(r: RemoteData<{ name: string }[]>): string:
idle→-;loading→Загрузка...;error→Ошибка: <message>и, еслиretryable, в конце(повторить);success→Пустодля пустого массива, иначе имена через,.
Используй исчерпывающий switch с never в default.
Примеры
describe({"state":"idle"}) // "-"
describe({"state":"loading"}) // "Загрузка..."
describe({"state":"error","message":"timeout","retryable":true}) // "Ошибка: timeout (повторить)"
Как подойти
Подсказки: 1
- Состояния взаимоисключающие, поэтому union, а не набор флагов
isLoading,error?,data?.
Решите в тренажёре
Редактор с автотестами прямо в браузере. Можно решить спокойно, вслух или под таймером, как на собесе.