fix(projects): fix flatRequest error type. fixed #376

This commit is contained in:
Soybean
2024-04-03 00:02:09 +08:00
parent 9125cc9b60
commit 1ec5ea0ff1
3 changed files with 22 additions and 19 deletions

View File

@ -16,19 +16,19 @@ export type HookRequestInstanceResponseSuccessData<T = any> = {
error: Ref<null>;
};
export type HookRequestInstanceResponseFailData<T = any> = {
export type HookRequestInstanceResponseFailData<ResponseData = any> = {
data: Ref<null>;
error: Ref<AxiosError<T>>;
error: Ref<AxiosError<ResponseData>>;
};
export type HookRequestInstanceResponseData<T = any> = {
export type HookRequestInstanceResponseData<T = any, ResponseData = any> = {
loading: Ref<boolean>;
} & (HookRequestInstanceResponseSuccessData<T> | HookRequestInstanceResponseFailData<T>);
} & (HookRequestInstanceResponseSuccessData<T> | HookRequestInstanceResponseFailData<ResponseData>);
export interface HookRequestInstance {
export interface HookRequestInstance<ResponseData = any> {
<T = any, R extends ResponseType = 'json'>(
config: CustomAxiosRequestConfig
): HookRequestInstanceResponseData<MappedType<R, T>>;
): HookRequestInstanceResponseData<MappedType<R, T>, ResponseData>;
cancelRequest: (requestId: string) => void;
cancelAllRequest: () => void;
}
@ -45,13 +45,13 @@ export default function createHookRequest<ResponseData = any>(
) {
const request = createFlatRequest<ResponseData>(axiosConfig, options);
const hookRequest: HookRequestInstance = function hookRequest<T = any, R extends ResponseType = 'json'>(
const hookRequest: HookRequestInstance<ResponseData> = function hookRequest<T = any, R extends ResponseType = 'json'>(
config: CustomAxiosRequestConfig
) {
const { loading, startLoading, endLoading } = useLoading();
const data = ref<MappedType<R, T> | null>(null);
const error = ref<AxiosError<MappedType<R, T>> | null>(null);
const data = ref<MappedType<R, T> | null>(null) as Ref<MappedType<R, T>>;
const error = ref<AxiosError<ResponseData> | null>(null) as Ref<AxiosError<ResponseData> | null>;
startLoading();
@ -70,7 +70,7 @@ export default function createHookRequest<ResponseData = any>(
data,
error
};
} as HookRequestInstance;
} as HookRequestInstance<ResponseData>;
hookRequest.cancelRequest = request.cancelRequest;
hookRequest.cancelAllRequest = request.cancelAllRequest;