@@ -138,15 +138,82 @@ export interface AxiosConstructor {
138138}
139139
140140export default class Axios {
141+ public static as = [ 'options' , 'trace' , 'connect' ] as const ;
142+ public static pas = [ 'head' , 'get' , 'delete' ] as const ;
143+ public static das = [ 'post' , 'put' ] as const ;
144+
141145 public defaults : AxiosRequestConfig ;
142146
143147 public interceptors = {
144148 request : new InterceptorManager < AxiosRequestConfig > ( ) ,
145149 response : new InterceptorManager < AxiosResponse > ( ) ,
146150 } ;
147151
152+ public options ! : < TData = unknown > (
153+ url : string ,
154+ config ?: AxiosRequestConfig ,
155+ ) => Promise < AxiosResponse < TData > > ;
156+
157+ public get ! : < TData = unknown > (
158+ url : string ,
159+ params ?: AnyObject ,
160+ config ?: AxiosRequestConfig ,
161+ ) => Promise < AxiosResponse < TData > > ;
162+
163+ public head ! : < TData = unknown > (
164+ url : string ,
165+ params ?: AnyObject ,
166+ config ?: AxiosRequestConfig ,
167+ ) => Promise < AxiosResponse < TData > > ;
168+
169+ public post ! : < TData = unknown > (
170+ url : string ,
171+ data ?: AnyObject | AxiosRequestFormData ,
172+ config ?: AxiosRequestConfig ,
173+ ) => Promise < AxiosResponse < TData > > ;
174+
175+ public put ! : < TData = unknown > (
176+ url : string ,
177+ data ?: AnyObject | AxiosRequestFormData ,
178+ config ?: AxiosRequestConfig ,
179+ ) => Promise < AxiosResponse < TData > > ;
180+
181+ public delete ! : < TData = unknown > (
182+ url : string ,
183+ params ?: AnyObject ,
184+ config ?: AxiosRequestConfig ,
185+ ) => Promise < AxiosResponse < TData > > ;
186+
187+ public trace ! : < TData = unknown > (
188+ url : string ,
189+ config ?: AxiosRequestConfig ,
190+ ) => Promise < AxiosResponse < TData > > ;
191+
192+ public connect ! : < TData = unknown > (
193+ url : string ,
194+ config ?: AxiosRequestConfig ,
195+ ) => Promise < AxiosResponse < TData > > ;
196+
148197 public constructor ( defaults : AxiosRequestConfig = { } ) {
149198 this . defaults = defaults ;
199+
200+ for ( const alias of Axios . as ) {
201+ this [ alias ] = ( url , config ) => {
202+ return this . _req ( alias , url , undefined , config ) ;
203+ } ;
204+ }
205+
206+ for ( const alias of Axios . pas ) {
207+ this [ alias ] = ( url , params , config ) => {
208+ return this . _req ( alias , url , params , config ) ;
209+ } ;
210+ }
211+
212+ for ( const alias of Axios . das ) {
213+ this [ alias ] = ( url , data , config ) => {
214+ return this . _reqWithData ( alias , url , data , config ) ;
215+ } ;
216+ }
150217 }
151218
152219 public getUri ( config : AxiosRequestConfig ) : string {
@@ -183,67 +250,6 @@ export default class Axios {
183250 return promiseResponse as Promise < AxiosResponse < TData > > ;
184251 }
185252
186- public options < TData = unknown > (
187- url : string ,
188- config ?: AxiosRequestConfig ,
189- ) : Promise < AxiosResponse < TData > > {
190- return this . _req < TData > ( 'options' , url , undefined , config ) ;
191- }
192-
193- public get < TData = unknown > (
194- url : string ,
195- params ?: AnyObject ,
196- config ?: AxiosRequestConfig ,
197- ) : Promise < AxiosResponse < TData > > {
198- return this . _req < TData > ( 'get' , url , params , config ) ;
199- }
200-
201- public head < TData = unknown > (
202- url : string ,
203- params ?: AnyObject ,
204- config ?: AxiosRequestConfig ,
205- ) : Promise < AxiosResponse < TData > > {
206- return this . _req < TData > ( 'head' , url , params , config ) ;
207- }
208-
209- public post < TData = unknown > (
210- url : string ,
211- data ?: AnyObject | AxiosRequestFormData ,
212- config ?: AxiosRequestConfig ,
213- ) : Promise < AxiosResponse < TData > > {
214- return this . _reqWithData < TData > ( 'post' , url , data , config ) ;
215- }
216-
217- public put < TData = unknown > (
218- url : string ,
219- data ?: AnyObject | AxiosRequestFormData ,
220- config ?: AxiosRequestConfig ,
221- ) : Promise < AxiosResponse < TData > > {
222- return this . _reqWithData < TData > ( 'put' , url , data , config ) ;
223- }
224-
225- public delete < TData = unknown > (
226- url : string ,
227- params ?: AnyObject ,
228- config ?: AxiosRequestConfig ,
229- ) : Promise < AxiosResponse < TData > > {
230- return this . _req < TData > ( 'delete' , url , params , config ) ;
231- }
232-
233- public trace < TData = unknown > (
234- url : string ,
235- config ?: AxiosRequestConfig ,
236- ) : Promise < AxiosResponse < TData > > {
237- return this . _req < TData > ( 'trace' , url , undefined , config ) ;
238- }
239-
240- public connect < TData = unknown > (
241- url : string ,
242- config ?: AxiosRequestConfig ,
243- ) : Promise < AxiosResponse < TData > > {
244- return this . _req < TData > ( 'connect' , url , undefined , config ) ;
245- }
246-
247253 private _req < TData = unknown > (
248254 method : AxiosRequestMethod ,
249255 url : string ,
0 commit comments