Skip to content

Commit bba101e

Browse files
author
廖璇
committed
feat: make InfiniteQueryObserver's type more robust
1 parent fdbc002 commit bba101e

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
@@ -173,7 +173,7 @@ export function getPreviousPageParam(
173173
* Returns `undefined` if it cannot be determined.
174174
*/
175175
export function hasNextPage(
176-
options: QueryOptions<any, any>,
176+
options: QueryOptions<any, any, any, any>,
177177
pages?: unknown
178178
): boolean | undefined {
179179
if (options.getNextPageParam && Array.isArray(pages)) {
@@ -191,7 +191,7 @@ export function hasNextPage(
191191
* Returns `undefined` if it cannot be determined.
192192
*/
193193
export function hasPreviousPage(
194-
options: QueryOptions<any, any>,
194+
options: QueryOptions<any, any, any, any>,
195195
pages?: unknown
196196
): boolean | undefined {
197197
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)