// @strict: true// @declaration: true// @module: nodenext// @moduleResolution: nodenext// @target: esnext// @filename: node_modules/@tanstack/vue-query/build/modern/useQuery-CPqkvEsh.d.tstypeQueryKey=ReadonlyArray<unknown>;interfaceRegister{}typeDefaultError=Registerextends{defaultError: infer TError;}
? TError
: Error;typeShouldRetryFunction<TError=DefaultError>=(failureCount: number,error: TError,)=>boolean;typeRetryValue<TError>=boolean|number|ShouldRetryFunction<TError>;typeQueryFunctionContext<TQueryKeyextendsQueryKey=QueryKey,TPageParam=never,>=[TPageParam]extends[never]
? {queryKey: TQueryKey;}
: {queryKey: TQueryKey;pageParam: TPageParam;};typeQueryFunction<T=unknown,TQueryKeyextendsQueryKey=QueryKey,TPageParam=never,>=(context: QueryFunctionContext<TQueryKey,TPageParam>)=>T|Promise<T>;interfaceQueryOptions<TQueryFnData=unknown,TError=DefaultError,TData=TQueryFnData,TQueryKeyextendsQueryKey=QueryKey,TPageParam=never,>{retry?: RetryValue<TError>;queryFn?: QueryFunction<TQueryFnData,TQueryKey,TPageParam>;queryKey?: TQueryKey;initialData?: TData;initialDataUpdatedAt?: number|(()=>number|undefined);}interfaceQueryObserverOptions<TQueryFnData=unknown,TError=DefaultError,TData=TQueryFnData,TQueryData=TQueryFnData,TQueryKeyextendsQueryKey=QueryKey,TPageParam=never,>extendsQueryOptions<TQueryFnData,TError,TQueryData,TQueryKey,TPageParam>{enabled?: boolean;refetchInterval?: number;select?: (data: TQueryData)=>TData;}typeUseQueryOptions<TQueryFnData=unknown,TError=DefaultError,TData=TQueryFnData,TQueryData=TQueryFnData,TQueryKeyextendsQueryKey=QueryKey,>={[PropertyinkeyofQueryObserverOptions<TQueryFnData,TError,TData,TQueryData,TQueryKey>]: QueryObserverOptions<TQueryFnData,TError,TData,TQueryData,TQueryKey>[Property];};typeUndefinedInitialQueryOptions<TQueryFnData=unknown,TError=DefaultError,TData=TQueryFnData,TQueryKeyextendsQueryKey=QueryKey,>=UseQueryOptions<TQueryFnData,TError,TData,TQueryFnData,TQueryKey>&{initialData?: undefined;};interfaceQueryObserverBaseResult<TData=unknown,TError=DefaultError>{data: TData|undefined;dataUpdatedAt: number;error: TError|null;errorUpdatedAt: number;failureCount: number;failureReason: TError|null;errorUpdateCount: number;isError: boolean;isFetched: boolean;isFetchedAfterMount: boolean;isFetching: boolean;isLoading: boolean;isPending: boolean;isLoadingError: boolean;isInitialLoading: boolean;isPaused: boolean;isPlaceholderData: boolean;isRefetchError: boolean;isRefetching: boolean;isStale: boolean;isSuccess: boolean;}interfaceQueryObserverSuccessResult<TData=unknown,TError=DefaultError>extendsQueryObserverBaseResult<TData,TError>{data: TData;error: null;isError: false;isPending: false;isLoadingError: false;isRefetchError: false;isSuccess: true;status: "success";}typeDefinedQueryObserverResult<TData=unknown,TError=DefaultError,>=QueryObserverSuccessResult<TData,TError>;typeQueryObserverResult<TData=unknown,TError=DefaultError,>=DefinedQueryObserverResult<TData,TError>;typeToRef<T>={value: T;};typeUseBaseQueryReturnType<TData,TError,Result=QueryObserverResult<TData,TError>,>={[KinkeyofResult]: Kextends|"fetchNextPage"|"fetchPreviousPage"|"refetch"
? Result[K]
: ToRef<Readonly<Result>[K]>;}&{suspense: ()=>Promise<Result>;};typeUseQueryReturnType<TData,TError>=UseBaseQueryReturnType<TData,TError>;declarefunctionuseQuery<TQueryFnData=unknown,TError=DefaultError,TData=TQueryFnData,TQueryKeyextendsQueryKey=QueryKey,>(options: UndefinedInitialQueryOptions<TQueryFnData,TError,TData,TQueryKey>,): UseQueryReturnType<TData,TError>;export{typeUseQueryReturnTypeasb,useQueryasu};// @filename: node_modules/@tanstack/vue-query/build/modern/index.d.tsexport{basUseQueryReturnType,uasuseQuery}from'./useQuery-CPqkvEsh.js';// @filename: node_modules/@tanstack/vue-query/package.json{"name": "@tanstack/vue-query","type": "module","exports": {".": {"import": {"types": "./build/modern/index.d.ts","default": "./build/modern/index.js"},"require": {"types": "./build/modern/index.d.cts","default": "./build/modern/index.cjs"}}}}// @filename: src/index.mtsimport{useQuery}from'@tanstack/vue-query'constbaseUrl='https://api.publicapis.org/'interfaceIEntry{API: stringDescription: stringAuth: stringHTTPS: booleanCors: stringLink: stringCategory: string}consttestApi={getEntries: (): Promise<IEntry[]>=>{returnfetch(baseUrl+'entries').then((res)=>res.json()).then((data)=>data.entries).catch((err)=>console.log(err))}}constentryKeys={all: ['entries']asconst,list: ()=>[...entryKeys.all,'list']asconst}exportconstuseEntries=()=>{returnuseQuery({queryKey: entryKeys.list(),queryFn: testApi.getEntries,select: (data)=>data.slice(0,10)})}The inferred type of 'useEntries' cannot be named without a reference to '../../node_modules/@tanstack/vue-query/build/modern/useQuery-d58edace'. This is likely not portable. A type annotation is necessary.ts(2742)
🔎 Search Terms
declarations portable emit modules export declaration alias aliasing
🕗 Version & Regression Information
⏯ Playground Link
N/A
💻 Code
🙁 Actual behavior
🙂 Expected behavior
A declaration like this should be emitted successfully:
Additional information about the issue
It originally has been reported here: TanStack/query#6318