Состояние загрузки описано тремя флагами, и в UI бывают невозможные сочетания
type OrdersState = {
isLoading: boolean;
error?: string;
data?: Order[];
};
В интерфейсе периодически одновременно показываются спиннер и ошибка, или ошибка и старые данные. Какое описание типа исключит такие состояния на уровне компилятора?
- Размеченное объединение: loading, error с текстом, success с данными
- Сделать все три поля обязательными, без знаков вопроса
- Заменить isLoading на status: string
- Добавить поле isSuccess: boolean для полноты
