From 2d1e100b63e95ca87dcaf563726c2bb802c01b05 Mon Sep 17 00:00:00 2001 From: Lukas Hroch Date: Wed, 4 May 2022 22:20:59 +0100 Subject: [PATCH] fix(types): allow to specify partial default headers for instance creation --- 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 94b076cb13..99f651255f 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; @@ -248,7 +252,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 7c304de80c..362a213568 100644 --- a/test/typescript/axios.ts +++ b/test/typescript/axios.ts @@ -261,6 +261,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(