Skip to content

Commit

Permalink
fix(types): Fix error is typed as unknown (#483) (#514)
Browse files Browse the repository at this point in the history
  • Loading branch information
Agreon committed May 26, 2020
1 parent 4336a52 commit a0f7712
Show file tree
Hide file tree
Showing 2 changed files with 23 additions and 23 deletions.
30 changes: 15 additions & 15 deletions types/index.d.ts
Expand Up @@ -381,22 +381,22 @@ export interface BaseQueryOptions {
* If set to an integer number, e.g. 3, failed queries will retry until the failed query count meets that number.
* If set to a function `(failureCount, error) => boolean` failed queries will retry until the function returns false.
*/
retry?: boolean | number | ((failureCount: number, error: unknown) => boolean)
retry?: boolean | number | ((failureCount: number, error: Error) => boolean)
retryDelay?: (retryAttempt: number) => number
staleTime?: number
cacheTime?: number
refetchInterval?: false | number
refetchIntervalInBackground?: boolean
refetchOnWindowFocus?: boolean
refetchOnMount?: boolean
onError?: (err: unknown) => void
onError?: (err: Error) => void
suspense?: boolean
isDataEqual?: (oldData: unknown, newData: unknown) => boolean
}

export interface QueryOptions<TResult> extends BaseQueryOptions {
onSuccess?: (data: TResult) => void
onSettled?: (data: TResult | undefined, error: unknown | null) => void
onSettled?: (data: TResult | undefined, error: Error | null) => void
initialData?: TResult | (() => TResult | undefined)
}

Expand All @@ -415,7 +415,7 @@ export interface InfiniteQueryOptions<TResult, TMoreVariable>

export interface QueryResultBase<TResult> {
status: 'loading' | 'error' | 'success'
error: null | unknown
error: null | Error
isFetching: boolean
isStale: boolean
failureCount: number
Expand All @@ -431,13 +431,13 @@ export interface QueryResultBase<TResult> {
export interface QueryLoadingResult<TResult> extends QueryResultBase<TResult> {
status: 'loading'
data: TResult | undefined // even when error, data can have stale data
error: unknown | null // it still can be error
error: null | Error // it still can be error
}

export interface QueryErrorResult<TResult> extends QueryResultBase<TResult> {
status: 'error'
data: TResult | undefined // even when error, data can have stale data
error: unknown
error: Error
}

export interface QuerySuccessResult<TResult> extends QueryResultBase<TResult> {
Expand All @@ -456,15 +456,15 @@ export interface PaginatedQueryLoadingResult<TResult>
status: 'loading'
resolvedData: undefined | TResult // even when error, data can have stale data
latestData: undefined | TResult // even when error, data can have stale data
error: unknown | null // it still can be error
error: null | Error // it still can be error
}

export interface PaginatedQueryErrorResult<TResult>
extends QueryResultBase<TResult> {
status: 'error'
resolvedData: undefined | TResult // even when error, data can have stale data
latestData: undefined | TResult // even when error, data can have stale data
error: unknown
error: Error
}

export interface PaginatedQuerySuccessResult<TResult>
Expand Down Expand Up @@ -502,13 +502,13 @@ export type MutationFunction<TResults, TVariables> = (
export interface MutateOptions<TResult, TVariables> {
onSuccess?: (data: TResult, variables: TVariables) => Promise<void> | void
onError?: (
error: unknown,
error: Error,
variables: TVariables,
snapshotValue: unknown
) => Promise<void> | void
onSettled?: (
data: undefined | TResult,
error: unknown | null,
error: Error | null,
variables: TVariables,
snapshotValue?: unknown
) => Promise<void> | void
Expand All @@ -534,7 +534,7 @@ export type MutateFunction<TResult, TVariables> = undefined extends TVariables
export interface MutationResultBase<TResult> {
status: 'idle' | 'loading' | 'error' | 'success'
data: undefined | TResult
error: null | unknown
error: undefined | null | Error
promise: Promise<TResult>
reset: () => void
}
Expand All @@ -557,7 +557,7 @@ export interface ErrorMutationResult<TResult>
extends MutationResultBase<TResult> {
status: 'error'
data: undefined
error: unknown
error: Error
}

export interface SuccessMutationResult<TResult>
Expand All @@ -575,7 +575,7 @@ export type MutationResult<TResult> =

export interface CachedQueryState<T> {
data?: T
error?: unknown | null
error?: Error | null
failureCount: number
isFetching: boolean
canFetchMore?: boolean
Expand Down Expand Up @@ -748,10 +748,10 @@ export interface ReactQueryProviderConfig extends BaseQueryOptions {

onMutate?: (variables: unknown) => Promise<unknown> | unknown
onSuccess?: (data: unknown, variables?: unknown) => void
onError?: (err: unknown, snapshotValue?: unknown) => void
onError?: (err: Error, snapshotValue?: unknown) => void
onSettled?: (
data: unknown | undefined,
error: unknown | null,
error: Error | null,
snapshotValue?: unknown
) => void
isDataEqual?: (oldData: unknown, newData: unknown) => boolean
Expand Down
16 changes: 8 additions & 8 deletions types/test.ts
Expand Up @@ -12,7 +12,7 @@ function simpleQuery() {
// Query - simple case
const querySimple = useQuery('todos', () => Promise.resolve('test'))
querySimple.data // $ExpectType string | undefined
querySimple.error // $ExpectType unknown
querySimple.error // $ExpectType Error | null
querySimple.isFetching // $ExpectType boolean
querySimple.refetch() // $ExpectType Promise<string>
querySimple.fetchMore // $ExpectError
Expand Down Expand Up @@ -166,13 +166,13 @@ function paginatedQuery() {
if (queryPaginated.status === 'loading') {
queryPaginated.resolvedData // $ExpectType { data: number[]; next: boolean; } | undefined
queryPaginated.latestData // $ExpectType { data: number[]; next: boolean; } | undefined
queryPaginated.error // $ExpectType unknown
queryPaginated.error // $ExpectType Error | null
}

if (queryPaginated.status === 'error') {
queryPaginated.resolvedData // $ExpectType { data: number[]; next: boolean; } | undefined
queryPaginated.latestData // $ExpectType { data: number[]; next: boolean; } | undefined
queryPaginated.error // $ExpectType unknown
queryPaginated.error // $ExpectType Error
}

if (queryPaginated.status === 'success') {
Expand Down Expand Up @@ -221,7 +221,7 @@ function simpleInfiniteQuery(condition: boolean) {
) {},
onSettled(
data, // $ExpectType number[][] | undefined
error // $ExpectType unknown
error // $ExpectType Error | null
) {},
initialData: () =>
condition
Expand Down Expand Up @@ -331,7 +331,7 @@ function simpleMutation() {
throwOnError: true,
onSettled(result, error) {
result // $ExpectType string[] | undefined
error // $ExpectType unknown
error // $ExpectType Error | null
},
})

Expand Down Expand Up @@ -396,13 +396,13 @@ function dataDiscriminatedUnion() {
// Discriminated union over status
if (queryResult.status === 'loading') {
queryResult.data // $ExpectType string[] | undefined
queryResult.error // $ExpectType unknown
queryResult.error // $ExpectType Error | null
}

if (queryResult.status === 'error') {
// disabled
queryResult.data // $ExpectType string[] | undefined
queryResult.error // $ExpectType unknown
queryResult.error // $ExpectType Error
}

if (queryResult.status === 'success') {
Expand Down Expand Up @@ -437,7 +437,7 @@ function mutationStatusDiscriminatedUnion() {

if (mutationState.status === 'error') {
mutationState.data // $ExpectType undefined
mutationState.error // $ExpectType unknown
mutationState.error // $ExpectType Error
}

if (mutationState.status === 'success') {
Expand Down

0 comments on commit a0f7712

Please sign in to comment.