UNPKG

@tanstack/react-router

Version:

Modern and scalable routing for React applications

85 lines (80 loc) 1.82 kB
import type { AnyRouter, Constrain, InferFrom, InferMaskFrom, InferMaskTo, InferSelected, InferShouldThrow, InferStrict, InferTo, RegisteredRouter, } from '@tanstack/router-core' import type { LinkComponentProps } from './link' import type { UseParamsOptions } from './useParams' import type { UseSearchOptions } from './useSearch' export type ValidateLinkOptions< TRouter extends AnyRouter = RegisteredRouter, TOptions = unknown, TDefaultFrom extends string = string, TComp = 'a', > = Constrain< TOptions, LinkComponentProps< TComp, TRouter, InferFrom<TOptions, TDefaultFrom>, InferTo<TOptions>, InferMaskFrom<TOptions>, InferMaskTo<TOptions> > > /** * @internal */ export type InferStructuralSharing<TOptions> = TOptions extends { structuralSharing: infer TStructuralSharing } ? TStructuralSharing : unknown export type ValidateUseSearchOptions< TOptions, TRouter extends AnyRouter = RegisteredRouter, > = Constrain< TOptions, UseSearchOptions< TRouter, InferFrom<TOptions>, InferStrict<TOptions>, InferShouldThrow<TOptions>, InferSelected<TOptions>, InferStructuralSharing<TOptions> > > export type ValidateUseParamsOptions< TOptions, TRouter extends AnyRouter = RegisteredRouter, > = Constrain< TOptions, UseParamsOptions< TRouter, InferFrom<TOptions>, InferStrict<TOptions>, InferShouldThrow<TOptions>, InferSelected<TOptions>, InferSelected<TOptions> > > export type ValidateLinkOptionsArray< TRouter extends AnyRouter = RegisteredRouter, TOptions extends ReadonlyArray<any> = ReadonlyArray<unknown>, TDefaultFrom extends string = string, TComp = 'a', > = { [K in keyof TOptions]: ValidateLinkOptions< TRouter, TOptions[K], TDefaultFrom, TComp > }