Я преобразовал эту функцию в оператор switch, но теперь я получаю эту ошибку в моих тестовых пакетах.
Type boolean is not assignable to HttpError
Это утверждение if else
:
handleSubmitError = (
error: HttpError,
{ setSubmitting, setErrors, setStatus }: FormikActions<ITypeOfValues>
) => {
const genericError = 'An error occurred. Please try again';
setSubmitting(false);
if (!error.response || (error.response && !error.response.data)) {
setStatus(genericError);
} else if (
error.response &&
error.response.status === 400 &&
Array.isArray(error.response.data) &&
error.response.data.length > 0
) {
setErrors(mapServerValidationErrorsToFormik(error.response.data));
} else {
setStatus(error.response.data.toString() ? error.response.data.toString() : genericError);
}
};
Итак, это мое преобразование в оператор switch:
handleSubmitError = (
error: LensesHttpError,
{ setSubmitting, setErrors, setStatus }: FormikActions<ITypeOfValues>
) => {
const genericError = 'An error occurred. Please try again';
setSubmitting(false);
switch (error) {
case error === !error.response || (error.response && !error.response.data):
return setStatus(genericError);
case error === error.response &&
error.response.status === HTTP_STATUS_CODE.BAD_REQUEST &&
Array.isArray(error.response.data) &&
error.response.data.length > 0:
return setErrors(mapServerValidationErrorsToFormik(error.response.data));
default:
return setStatus(
error.response.data.toString() ? error.response.data.toString() : genericError
);
}
};
Это тип HttpError: export interface HttpError extends AxiosError {}
И это для AxiosError:
export interface AxiosError extends Error {
config: AxiosRequestConfig;
code?: string;
request?: any;
response?: AxiosResponse;
}
Что я делаю не так и почему мои тесты не пройдены. Ι означает, что это логические значения, которые я здесь передаю по ошибке? Спасибо !!