@@ -121,7 +121,7 @@ export type UseAsyncReturn<
121
121
// Relaxed interface which accept both async and sync functions
122
122
// Accepting sync function is convenient for useAsyncCallback
123
123
const useAsyncInternal = < R , Args extends any [ ] > (
124
- asyncFunction : ( ( ...args : Args ) => MaybePromise < R > ) | ( ( ) => MaybePromise < R > ) ,
124
+ asyncFunction : ( ...args : Args ) => MaybePromise < R > ,
125
125
params : Args ,
126
126
options ?: UseAsyncOptions < R >
127
127
) : UseAsyncReturn < R , Args > => {
@@ -182,11 +182,26 @@ const useAsyncInternal = <R, Args extends any[]>(
182
182
} ;
183
183
} ;
184
184
185
- export const useAsync = < R , Args extends any [ ] > (
186
- asyncFunction : ( ( ...args : Args ) => Promise < R > ) | ( ( ) => Promise < R > ) ,
185
+ // override to allow passing an async function with no args:
186
+ // gives more user-freedom to create an inline async function
187
+ export function useAsync < R , Args extends any [ ] > (
188
+ asyncFunction : ( ) => Promise < R > ,
187
189
params : Args ,
188
190
options ?: UseAsyncOptions < R >
189
- ) : UseAsyncReturn < R , Args > => useAsyncInternal ( asyncFunction , params , options ) ;
191
+ ) : UseAsyncReturn < R , Args > ;
192
+ export function useAsync < R , Args extends any [ ] > (
193
+ asyncFunction : ( ...args : Args ) => Promise < R > ,
194
+ params : Args ,
195
+ options ?: UseAsyncOptions < R >
196
+ ) : UseAsyncReturn < R , Args > ;
197
+
198
+ export function useAsync < R , Args extends any [ ] > (
199
+ asyncFunction : ( ...args : Args ) => Promise < R > ,
200
+ params : Args ,
201
+ options ?: UseAsyncOptions < R >
202
+ ) : UseAsyncReturn < R , Args > {
203
+ return useAsyncInternal ( asyncFunction , params , options ) ;
204
+ }
190
205
191
206
type AddArg < H , T extends any [ ] > = ( ( h : H , ...t : T ) => void ) extends ( (
192
207
...r : infer R
@@ -195,9 +210,7 @@ type AddArg<H, T extends any[]> = ((h: H, ...t: T) => void) extends ((
195
210
: never ;
196
211
197
212
export const useAsyncAbortable = < R , Args extends any [ ] > (
198
- asyncFunction :
199
- | ( ( ...args : AddArg < AbortSignal , Args > ) => Promise < R > )
200
- | ( ( abortSignal : AbortSignal ) => MaybePromise < R > ) ,
213
+ asyncFunction : ( ...args : AddArg < AbortSignal , Args > ) => Promise < R > ,
201
214
params : Args ,
202
215
options ?: UseAsyncOptions < R >
203
216
) : UseAsyncReturn < R , Args > => {
@@ -231,7 +244,7 @@ export const useAsyncAbortable = <R, Args extends any[]>(
231
244
} ;
232
245
233
246
export const useAsyncCallback = < R , Args extends any [ ] > (
234
- asyncFunction : ( ( ...args : Args ) => MaybePromise < R > ) | ( ( ) => MaybePromise < R > )
247
+ asyncFunction : ( ...args : Args ) => MaybePromise < R >
235
248
) : UseAsyncReturn < R , Args > => {
236
249
return useAsyncInternal (
237
250
asyncFunction ,
0 commit comments