diff --git a/packages/react-relay/ReactRelayTypes.d.ts b/packages/react-relay/ReactRelayTypes.d.ts index fdbe42bbbeaf..d74b055777dd 100644 --- a/packages/react-relay/ReactRelayTypes.d.ts +++ b/packages/react-relay/ReactRelayTypes.d.ts @@ -132,23 +132,27 @@ export type LoadQueryOptions = Readonly<{ export type EnvironmentProviderOptions = Record> = T; -export type PreloadedQuery< +// eslint type alias suggestion is not equivalent to the interface since it's looing the generic type information `TQuery`, preventing type inference, eg on usePreloadedQuery +// eslint-disable-next-line @typescript-eslint/no-empty-object-type +export interface PreloadedQuery< TQuery extends OperationType, TEnvironmentProviderOptions = EnvironmentProviderOptions, -> = Readonly<{ - kind: 'PreloadedQuery'; - environment: IEnvironment; - environmentProviderOptions?: TEnvironmentProviderOptions | null | undefined; - fetchKey: string | number; - fetchPolicy: PreloadFetchPolicy; - networkCacheConfig?: CacheConfig | null | undefined; - id?: string | null | undefined; - name: string; - source?: Observable | null | undefined; - variables: VariablesOf; - dispose: DisposeFn; - isDisposed: boolean; -}>; +> extends + Readonly<{ + kind: 'PreloadedQuery'; + environment: IEnvironment; + environmentProviderOptions?: TEnvironmentProviderOptions | null | undefined; + fetchKey: string | number; + fetchPolicy: PreloadFetchPolicy; + networkCacheConfig?: CacheConfig | null | undefined; + id?: string | null | undefined; + name: string; + source?: Observable | null | undefined; + variables: VariablesOf; + dispose: DisposeFn; + isDisposed: boolean; + }> +{} export type PreloadQueryStatus = Readonly<{ cacheConfig?: CacheConfig | null | undefined;