Skip to content

Commit 5a82679

Browse files
authored
fix: type errors with skipLibCheck: false (#4233)
fixes #4114
1 parent 0d71e04 commit 5a82679

File tree

4 files changed

+238
-126
lines changed

4 files changed

+238
-126
lines changed

packages/react-router/src/route.tsx

Lines changed: 87 additions & 53 deletions
Original file line numberDiff line numberDiff line change
@@ -25,9 +25,11 @@ import type {
2525
ResolveFullPath,
2626
ResolveId,
2727
ResolveParams,
28+
RootRoute as RootRouteCore,
2829
RootRouteId,
2930
RootRouteOptions,
3031
RouteConstraints,
32+
Route as RouteCore,
3133
RouteIds,
3234
RouteMask,
3335
RouteOptions,
@@ -148,43 +150,62 @@ export class RouteApi<
148150
}
149151

150152
export class Route<
151-
in out TParentRoute extends RouteConstraints['TParentRoute'] = AnyRoute,
152-
in out TPath extends RouteConstraints['TPath'] = '/',
153-
in out TFullPath extends RouteConstraints['TFullPath'] = ResolveFullPath<
154-
TParentRoute,
155-
TPath
156-
>,
157-
in out TCustomId extends RouteConstraints['TCustomId'] = string,
158-
in out TId extends RouteConstraints['TId'] = ResolveId<
153+
in out TParentRoute extends RouteConstraints['TParentRoute'] = AnyRoute,
154+
in out TPath extends RouteConstraints['TPath'] = '/',
155+
in out TFullPath extends RouteConstraints['TFullPath'] = ResolveFullPath<
156+
TParentRoute,
157+
TPath
158+
>,
159+
in out TCustomId extends RouteConstraints['TCustomId'] = string,
160+
in out TId extends RouteConstraints['TId'] = ResolveId<
161+
TParentRoute,
162+
TCustomId,
163+
TPath
164+
>,
165+
in out TSearchValidator = undefined,
166+
in out TParams = ResolveParams<TPath>,
167+
in out TRouterContext = AnyContext,
168+
in out TRouteContextFn = AnyContext,
169+
in out TBeforeLoadFn = AnyContext,
170+
in out TLoaderDeps extends Record<string, any> = {},
171+
in out TLoaderFn = undefined,
172+
in out TChildren = unknown,
173+
in out TFileRouteTypes = unknown,
174+
>
175+
extends BaseRoute<
159176
TParentRoute,
177+
TPath,
178+
TFullPath,
160179
TCustomId,
161-
TPath
162-
>,
163-
in out TSearchValidator = undefined,
164-
in out TParams = ResolveParams<TPath>,
165-
in out TRouterContext = AnyContext,
166-
in out TRouteContextFn = AnyContext,
167-
in out TBeforeLoadFn = AnyContext,
168-
in out TLoaderDeps extends Record<string, any> = {},
169-
in out TLoaderFn = undefined,
170-
in out TChildren = unknown,
171-
in out TFileRouteTypes = unknown,
172-
> extends BaseRoute<
173-
TParentRoute,
174-
TPath,
175-
TFullPath,
176-
TCustomId,
177-
TId,
178-
TSearchValidator,
179-
TParams,
180-
TRouterContext,
181-
TRouteContextFn,
182-
TBeforeLoadFn,
183-
TLoaderDeps,
184-
TLoaderFn,
185-
TChildren,
186-
TFileRouteTypes
187-
> {
180+
TId,
181+
TSearchValidator,
182+
TParams,
183+
TRouterContext,
184+
TRouteContextFn,
185+
TBeforeLoadFn,
186+
TLoaderDeps,
187+
TLoaderFn,
188+
TChildren,
189+
TFileRouteTypes
190+
>
191+
implements
192+
RouteCore<
193+
TParentRoute,
194+
TPath,
195+
TFullPath,
196+
TCustomId,
197+
TId,
198+
TSearchValidator,
199+
TParams,
200+
TRouterContext,
201+
TRouteContextFn,
202+
TBeforeLoadFn,
203+
TLoaderDeps,
204+
TLoaderFn,
205+
TChildren,
206+
TFileRouteTypes
207+
>
208+
{
188209
/**
189210
* @deprecated Use the `createRoute` function instead.
190211
*/
@@ -364,24 +385,37 @@ export function createRootRouteWithContext<TRouterContext extends {}>() {
364385
export const rootRouteWithContext = createRootRouteWithContext
365386

366387
export class RootRoute<
367-
in out TSearchValidator = undefined,
368-
in out TRouterContext = {},
369-
in out TRouteContextFn = AnyContext,
370-
in out TBeforeLoadFn = AnyContext,
371-
in out TLoaderDeps extends Record<string, any> = {},
372-
in out TLoaderFn = undefined,
373-
in out TChildren = unknown,
374-
in out TFileRouteTypes = unknown,
375-
> extends BaseRootRoute<
376-
TSearchValidator,
377-
TRouterContext,
378-
TRouteContextFn,
379-
TBeforeLoadFn,
380-
TLoaderDeps,
381-
TLoaderFn,
382-
TChildren,
383-
TFileRouteTypes
384-
> {
388+
in out TSearchValidator = undefined,
389+
in out TRouterContext = {},
390+
in out TRouteContextFn = AnyContext,
391+
in out TBeforeLoadFn = AnyContext,
392+
in out TLoaderDeps extends Record<string, any> = {},
393+
in out TLoaderFn = undefined,
394+
in out TChildren = unknown,
395+
in out TFileRouteTypes = unknown,
396+
>
397+
extends BaseRootRoute<
398+
TSearchValidator,
399+
TRouterContext,
400+
TRouteContextFn,
401+
TBeforeLoadFn,
402+
TLoaderDeps,
403+
TLoaderFn,
404+
TChildren,
405+
TFileRouteTypes
406+
>
407+
implements
408+
RootRouteCore<
409+
TSearchValidator,
410+
TRouterContext,
411+
TRouteContextFn,
412+
TBeforeLoadFn,
413+
TLoaderDeps,
414+
TLoaderFn,
415+
TChildren,
416+
TFileRouteTypes
417+
>
418+
{
385419
/**
386420
* @deprecated `RootRoute` is now an internal implementation detail. Use `createRootRoute()` instead.
387421
*/

packages/router-core/src/index.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -198,6 +198,7 @@ export type {
198198
RouteAddChildrenFn,
199199
RouteAddFileChildrenFn,
200200
RouteAddFileTypesFn,
201+
RootRoute,
201202
} from './route'
202203

203204
export {

packages/router-core/src/route.ts

Lines changed: 63 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -621,7 +621,24 @@ export interface Route<
621621
TBeforeLoadFn
622622
>,
623623
) => this
624-
lazy: RouteLazyFn<this>
624+
lazy: RouteLazyFn<
625+
Route<
626+
TParentRoute,
627+
TPath,
628+
TFullPath,
629+
TCustomId,
630+
TId,
631+
TSearchValidator,
632+
TParams,
633+
TRouterContext,
634+
TRouteContextFn,
635+
TBeforeLoadFn,
636+
TLoaderDeps,
637+
TLoaderFn,
638+
TChildren,
639+
TFileRouteTypes
640+
>
641+
>
625642
addChildren: RouteAddChildrenFn<
626643
TParentRoute,
627644
TPath,
@@ -1281,24 +1298,7 @@ export class BaseRoute<
12811298
in out TLoaderFn = undefined,
12821299
in out TChildren = unknown,
12831300
in out TFileRouteTypes = unknown,
1284-
> implements
1285-
Route<
1286-
TParentRoute,
1287-
TPath,
1288-
TFullPath,
1289-
TCustomId,
1290-
TId,
1291-
TSearchValidator,
1292-
TParams,
1293-
TRouterContext,
1294-
TRouteContextFn,
1295-
TBeforeLoadFn,
1296-
TLoaderDeps,
1297-
TLoaderFn,
1298-
TChildren,
1299-
TFileRouteTypes
1300-
>
1301-
{
1301+
> {
13021302
isRoot: TParentRoute extends AnyRoute ? true : false
13031303
options: RouteOptions<
13041304
TParentRoute,
@@ -1573,7 +1573,24 @@ export class BaseRoute<
15731573
return this
15741574
}
15751575

1576-
lazy: RouteLazyFn<this> = (lazyFn) => {
1576+
lazy: RouteLazyFn<
1577+
Route<
1578+
TParentRoute,
1579+
TPath,
1580+
TFullPath,
1581+
TCustomId,
1582+
TId,
1583+
TSearchValidator,
1584+
TParams,
1585+
TRouterContext,
1586+
TRouteContextFn,
1587+
TBeforeLoadFn,
1588+
TLoaderDeps,
1589+
TLoaderFn,
1590+
TChildren,
1591+
TFileRouteTypes
1592+
>
1593+
> = (lazyFn) => {
15771594
this.lazyFn = lazyFn
15781595
return this
15791596
}
@@ -1591,6 +1608,32 @@ export class BaseRouteApi<TId, TRouter extends AnyRouter = RegisteredRouter> {
15911608
}
15921609
}
15931610

1611+
export interface RootRoute<
1612+
in out TSearchValidator = undefined,
1613+
in out TRouterContext = {},
1614+
in out TRouteContextFn = AnyContext,
1615+
in out TBeforeLoadFn = AnyContext,
1616+
in out TLoaderDeps extends Record<string, any> = {},
1617+
in out TLoaderFn = undefined,
1618+
in out TChildren = unknown,
1619+
in out TFileRouteTypes = unknown,
1620+
> extends Route<
1621+
any, // TParentRoute
1622+
'/', // TPath
1623+
'/', // TFullPath
1624+
string, // TCustomId
1625+
RootRouteId, // TId
1626+
TSearchValidator, // TSearchValidator
1627+
{}, // TParams
1628+
TRouterContext,
1629+
TRouteContextFn,
1630+
TBeforeLoadFn,
1631+
TLoaderDeps,
1632+
TLoaderFn,
1633+
TChildren, // TChildren
1634+
TFileRouteTypes
1635+
> {}
1636+
15941637
export class BaseRootRoute<
15951638
in out TSearchValidator = undefined,
15961639
in out TRouterContext = {},

0 commit comments

Comments
 (0)