# Interface LazyRouteFunction<R>

lazy() function to load a route definition, which can add non-matching related properties to a route

interface LazyRouteFunction<R> (() => Promise<Exclude<{
[K in string | number | symbol]: K extends Exclude<keyof R, ImmutableRouteKey>
? Omit<Omit<R, ImmutableRouteKey>, K<K>> & Required<Pick<Omit<R, ImmutableRouteKey>, K<K>>>
: never
}[Exclude<keyof R, ImmutableRouteKey>], undefined>>)

#### Type Parameters

- R extends AgnosticRouteObject

- LazyRouteFunction(): Promise<Exclude<{
  [K in string | number | symbol]: K extends Exclude<keyof R, ImmutableRouteKey>
  ? Omit<Omit<R, ImmutableRouteKey>, K<K>> & Required<Pick<Omit<R, ImmutableRouteKey>, K<K>>>
  : never
  }[Exclude<keyof R, ImmutableRouteKey>], undefined>>

- #### Returns Promise<Exclude<{
  [K in string | number | symbol]: K extends Exclude<keyof R, ImmutableRouteKey>
  ? Omit<Omit<R, ImmutableRouteKey>, K<K>> & Required<Pick<Omit<R, ImmutableRouteKey>, K<K>>>
  : never
  }[Exclude<keyof R, ImmutableRouteKey>], undefined>>

  - Defined in common/temp/node_modules/.pnpm/@remix-run+router@1.16.1/node_modules/@remix-run/router/dist/utils.d.ts:227