Skip to content

Commit 97484dc

Browse files
liaoliao666廖璇
and
廖璇
authored
feat: make InfiniteQueryObserver's type more robust (#3571)
Co-authored-by: 廖璇 <[email protected]>
1 parent f77f6f4 commit 97484dc

File tree

2 files changed

+16
-9
lines changed

2 files changed

+16
-9
lines changed

src/core/infiniteQueryBehavior.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -182,7 +182,7 @@ export function getPreviousPageParam(
182182
* Returns `undefined` if it cannot be determined.
183183
*/
184184
export function hasNextPage(
185-
options: QueryOptions<any, any>,
185+
options: QueryOptions<any, any, any, any>,
186186
pages?: unknown
187187
): boolean | undefined {
188188
if (options.getNextPageParam && Array.isArray(pages)) {
@@ -200,7 +200,7 @@ export function hasNextPage(
200200
* Returns `undefined` if it cannot be determined.
201201
*/
202202
export function hasPreviousPage(
203-
options: QueryOptions<any, any>,
203+
options: QueryOptions<any, any, any, any>,
204204
pages?: unknown
205205
): boolean | undefined {
206206
if (options.getPreviousPageParam && Array.isArray(pages)) {

src/core/infiniteQueryObserver.ts

Lines changed: 14 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ import type {
55
InfiniteData,
66
InfiniteQueryObserverOptions,
77
InfiniteQueryObserverResult,
8+
QueryKey,
89
} from './types'
910
import type { QueryClient } from './queryClient'
1011
import {
@@ -27,12 +28,14 @@ export class InfiniteQueryObserver<
2728
TQueryFnData = unknown,
2829
TError = unknown,
2930
TData = TQueryFnData,
30-
TQueryData = TQueryFnData
31+
TQueryData = TQueryFnData,
32+
TQueryKey extends QueryKey = QueryKey
3133
> extends QueryObserver<
3234
TQueryFnData,
3335
TError,
3436
InfiniteData<TData>,
35-
InfiniteData<TQueryData>
37+
InfiniteData<TQueryData>,
38+
TQueryKey
3639
> {
3740
// Type override
3841
subscribe!: (
@@ -54,7 +57,8 @@ export class InfiniteQueryObserver<
5457
TQueryFnData,
5558
TError,
5659
TData,
57-
TQueryData
60+
TQueryData,
61+
TQueryKey
5862
>
5963
) {
6064
super(client, options)
@@ -71,7 +75,8 @@ export class InfiniteQueryObserver<
7175
TQueryFnData,
7276
TError,
7377
TData,
74-
TQueryData
78+
TQueryData,
79+
TQueryKey
7580
>,
7681
notifyOptions?: NotifyOptions
7782
): void {
@@ -89,7 +94,8 @@ export class InfiniteQueryObserver<
8994
TQueryFnData,
9095
TError,
9196
TData,
92-
TQueryData
97+
TQueryData,
98+
TQueryKey
9399
>
94100
): InfiniteQueryObserverResult<TData, TError> {
95101
options.behavior = infiniteQueryBehavior()
@@ -125,12 +131,13 @@ export class InfiniteQueryObserver<
125131
}
126132

127133
protected createResult(
128-
query: Query<TQueryFnData, TError, InfiniteData<TQueryData>>,
134+
query: Query<TQueryFnData, TError, InfiniteData<TQueryData>, TQueryKey>,
129135
options: InfiniteQueryObserverOptions<
130136
TQueryFnData,
131137
TError,
132138
TData,
133-
TQueryData
139+
TQueryData,
140+
TQueryKey
134141
>
135142
): InfiniteQueryObserverResult<TData, TError> {
136143
const { state } = query

0 commit comments

Comments
 (0)