Skip to content

Commit 683c85e

Browse files
authored
refactor(query-core): type override subscribe in InfiniteQueryObserver more clearly (#7914)
* fix(query-core): type override subscribe in InfiniteQueryObserver more clearly * chore: update
1 parent c7fb5fd commit 683c85e

File tree

2 files changed

+31
-9
lines changed

2 files changed

+31
-9
lines changed

packages/query-core/src/infiniteQueryObserver.ts

Lines changed: 30 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ import {
44
hasPreviousPage,
55
infiniteQueryBehavior,
66
} from './infiniteQueryBehavior'
7+
import type { Subscribable } from './subscribable'
78
import type {
89
DefaultError,
910
DefaultedInfiniteQueryObserverOptions,
@@ -16,7 +17,7 @@ import type {
1617
QueryKey,
1718
} from './types'
1819
import type { QueryClient } from './queryClient'
19-
import type { NotifyOptions, ObserverFetchOptions } from './queryObserver'
20+
import type { NotifyOptions } from './queryObserver'
2021
import type { Query } from './query'
2122

2223
type InfiniteQueryObserverListener<TData, TError> = (
@@ -38,17 +39,33 @@ export class InfiniteQueryObserver<
3839
TQueryKey
3940
> {
4041
// Type override
41-
subscribe!: (
42-
listener?: InfiniteQueryObserverListener<TData, TError>,
43-
) => () => void
42+
subscribe!: Subscribable<
43+
InfiniteQueryObserverListener<TData, TError>
44+
>['subscribe']
4445

4546
// Type override
46-
getCurrentResult!: () => InfiniteQueryObserverResult<TData, TError>
47+
getCurrentResult!: ReplaceReturnType<
48+
QueryObserver<
49+
TQueryFnData,
50+
TError,
51+
TData,
52+
InfiniteData<TQueryData, TPageParam>,
53+
TQueryKey
54+
>['getCurrentResult'],
55+
InfiniteQueryObserverResult<TData, TError>
56+
>
4757

4858
// Type override
49-
protected fetch!: (
50-
fetchOptions: ObserverFetchOptions,
51-
) => Promise<InfiniteQueryObserverResult<TData, TError>>
59+
protected fetch!: ReplaceReturnType<
60+
QueryObserver<
61+
TQueryFnData,
62+
TError,
63+
TData,
64+
InfiniteData<TQueryData, TPageParam>,
65+
TQueryKey
66+
>['fetch'],
67+
Promise<InfiniteQueryObserverResult<TData, TError>>
68+
>
5269

5370
constructor(
5471
client: QueryClient,
@@ -176,3 +193,8 @@ export class InfiniteQueryObserver<
176193
return result as InfiniteQueryObserverResult<TData, TError>
177194
}
178195
}
196+
197+
type ReplaceReturnType<
198+
TFunction extends (...args: Array<any>) => unknown,
199+
TReturn,
200+
> = (...args: Parameters<TFunction>) => TReturn

packages/query-core/src/queryObserver.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ export interface NotifyOptions {
3434
listeners?: boolean
3535
}
3636

37-
export interface ObserverFetchOptions extends FetchOptions {
37+
interface ObserverFetchOptions extends FetchOptions {
3838
throwOnError?: boolean
3939
}
4040

0 commit comments

Comments
 (0)