From ac96144dd3e39004ffb3c82dab964596100c3b05 Mon Sep 17 00:00:00 2001 From: Lukas Hroch <223967+lukashroch@users.noreply.github.com> Date: Mon, 9 May 2022 19:03:05 +0100 Subject: [PATCH] fix(types): allow to specify partial default headers for instance creation (#4185) Co-authored-by: Jay --- index.d.ts | 6 +++++- test/typescript/axios.ts | 5 +++++ 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/index.d.ts b/index.d.ts index bcbe91e797..fd9cd922cc 100644 --- a/index.d.ts +++ b/index.d.ts @@ -137,6 +137,10 @@ export interface AxiosDefaults extends Omit, 'hea headers: HeadersDefaults; } +export interface CreateAxiosDefaults extends Omit, 'headers'> { + headers?: AxiosRequestHeaders | Partial; +} + export interface AxiosResponse { data: T; status: number; @@ -254,7 +258,7 @@ export interface GenericFormData { } export interface AxiosStatic extends AxiosInstance { - create(config?: AxiosRequestConfig): AxiosInstance; + create(config?: CreateAxiosDefaults): AxiosInstance; Cancel: CancelStatic; CancelToken: CancelTokenStatic; Axios: typeof Axios; diff --git a/test/typescript/axios.ts b/test/typescript/axios.ts index 66b6b3dc62..94d41602c1 100644 --- a/test/typescript/axios.ts +++ b/test/typescript/axios.ts @@ -263,6 +263,11 @@ instance1.defaults.headers.common['Authorization'] = 'token'; instance1.defaults.headers.post['X-FOO'] = 'bar'; instance1.defaults.timeout = 2500; +// axios create defaults + +axios.create({ headers: { foo: 'bar' } }); +axios.create({ headers: { common: { foo: 'bar' } } }); + // Interceptors const requestInterceptorId: number = axios.interceptors.request.use(