From bba101ef4f30cb1fa12a9c8218212b29e2231761 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BB=96=E7=92=87?= Date: Fri, 29 Apr 2022 10:38:01 +0800 Subject: [PATCH] feat: make InfiniteQueryObserver's type more robust --- src/core/infiniteQueryBehavior.ts | 4 ++-- src/core/infiniteQueryObserver.ts | 21 ++++++++++++++------- 2 files changed, 16 insertions(+), 9 deletions(-) diff --git a/src/core/infiniteQueryBehavior.ts b/src/core/infiniteQueryBehavior.ts index 3fe93a0377..2e42510096 100644 --- a/src/core/infiniteQueryBehavior.ts +++ b/src/core/infiniteQueryBehavior.ts @@ -173,7 +173,7 @@ export function getPreviousPageParam( * Returns `undefined` if it cannot be determined. */ export function hasNextPage( - options: QueryOptions, + options: QueryOptions, pages?: unknown ): boolean | undefined { if (options.getNextPageParam && Array.isArray(pages)) { @@ -191,7 +191,7 @@ export function hasNextPage( * Returns `undefined` if it cannot be determined. */ export function hasPreviousPage( - options: QueryOptions, + options: QueryOptions, pages?: unknown ): boolean | undefined { if (options.getPreviousPageParam && Array.isArray(pages)) { diff --git a/src/core/infiniteQueryObserver.ts b/src/core/infiniteQueryObserver.ts index 1622ed0777..dbde391a97 100644 --- a/src/core/infiniteQueryObserver.ts +++ b/src/core/infiniteQueryObserver.ts @@ -5,6 +5,7 @@ import type { InfiniteData, InfiniteQueryObserverOptions, InfiniteQueryObserverResult, + QueryKey, } from './types' import type { QueryClient } from './queryClient' import { @@ -27,12 +28,14 @@ export class InfiniteQueryObserver< TQueryFnData = unknown, TError = unknown, TData = TQueryFnData, - TQueryData = TQueryFnData + TQueryData = TQueryFnData, + TQueryKey extends QueryKey = QueryKey > extends QueryObserver< TQueryFnData, TError, InfiniteData, - InfiniteData + InfiniteData, + TQueryKey > { // Type override subscribe!: ( @@ -54,7 +57,8 @@ export class InfiniteQueryObserver< TQueryFnData, TError, TData, - TQueryData + TQueryData, + TQueryKey > ) { super(client, options) @@ -71,7 +75,8 @@ export class InfiniteQueryObserver< TQueryFnData, TError, TData, - TQueryData + TQueryData, + TQueryKey >, notifyOptions?: NotifyOptions ): void { @@ -89,7 +94,8 @@ export class InfiniteQueryObserver< TQueryFnData, TError, TData, - TQueryData + TQueryData, + TQueryKey > ): InfiniteQueryObserverResult { options.behavior = infiniteQueryBehavior() @@ -125,12 +131,13 @@ export class InfiniteQueryObserver< } protected createResult( - query: Query>, + query: Query, TQueryKey>, options: InfiniteQueryObserverOptions< TQueryFnData, TError, TData, - TQueryData + TQueryData, + TQueryKey > ): InfiniteQueryObserverResult { const { state } = query