From 64906bd8866fd86369133cee461f75b8353176ba Mon Sep 17 00:00:00 2001 From: Stephen Jennings Date: Mon, 26 Sep 2022 12:11:29 -0700 Subject: [PATCH] require interceptors to return values (#4874) Fixes #4873 Co-authored-by: Jay --- index.d.ts | 2 +- test/typescript/axios.ts | 13 +++++++++++++ 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/index.d.ts b/index.d.ts index dc03f4f..4f398be 100644 --- a/index.d.ts +++ b/index.d.ts @@ -343,7 +343,7 @@ export interface AxiosInterceptorOptions { } export interface AxiosInterceptorManager { - use(onFulfilled?: (value: V) => T | Promise, onRejected?: (error: any) => any, options?: AxiosInterceptorOptions): number; + use(onFulfilled?: (value: V) => V | Promise, onRejected?: (error: any) => any, options?: AxiosInterceptorOptions): number; eject(id: number): void; } diff --git a/test/typescript/axios.ts b/test/typescript/axios.ts index 4ff50cb..eddf2bc 100644 --- a/test/typescript/axios.ts +++ b/test/typescript/axios.ts @@ -300,6 +300,19 @@ axios.interceptors.response.use( (error: any) => Promise.reject(error) ); +const voidRequestInterceptorId = axios.interceptors.request.use( + // @ts-expect-error -- Must return an AxiosRequestConfig (or throw) + (_response) => {}, + (error: any) => Promise.reject(error) +); +const voidResponseInterceptorId = axios.interceptors.response.use( + // @ts-expect-error -- Must return an AxiosResponse (or throw) + (_response) => {}, + (error: any) => Promise.reject(error) +); +axios.interceptors.request.eject(voidRequestInterceptorId); +axios.interceptors.response.eject(voidResponseInterceptorId); + axios.interceptors.response.use((response: AxiosResponse) => response); axios.interceptors.response.use((response: AxiosResponse) => Promise.resolve(response));