From: Eduardo San Martin Morote Date: Thu, 13 Jun 2024 08:34:21 +0000 (+0200) Subject: docs: note about generic route record name X-Git-Tag: v4.4.0-alpha.3~6 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=958a1ad4e803b9d009f95b493445dac68267ae26;p=thirdparty%2Fvuejs%2Frouter.git docs: note about generic route record name --- diff --git a/packages/router/src/typed-routes/route-location.ts b/packages/router/src/typed-routes/route-location.ts index b331e51b..cdcd44a2 100644 --- a/packages/router/src/typed-routes/route-location.ts +++ b/packages/router/src/typed-routes/route-location.ts @@ -11,14 +11,7 @@ import type { _LiteralUnion } from '../types/utils' import type { RouteMap, RouteMapGeneric } from './route-map' import type { Router } from '../router' import type { RouteRecord, RouteRecordNormalized } from '../matcher/types' -import { RouteRecordNameGeneric } from './route-records' - -/** - * Possible values for a user-defined route record's name. - */ -export type RouteRecordName = RouteMapGeneric extends RouteMap - ? RouteRecordNameGeneric - : keyof RouteMap +import type { RouteRecordName, RouteRecordNameGeneric } from './route-records' /** * Generic version of {@link RouteLocation}. It is used when no {@link RouteMap} is provided. diff --git a/packages/router/src/typed-routes/route-records.ts b/packages/router/src/typed-routes/route-records.ts index 0cd6d148..0118e58c 100644 --- a/packages/router/src/typed-routes/route-records.ts +++ b/packages/router/src/typed-routes/route-records.ts @@ -1,9 +1,9 @@ -import { +import type { RouteLocation, RouteLocationNormalized, RouteLocationRaw, } from './route-location' -import { RouteMap } from './route-map' +import type { RouteMap, RouteMapGeneric } from './route-map' /** * @internal @@ -17,6 +17,15 @@ export type RouteRecordRedirectOption = */ export type RouteRecordNameGeneric = string | symbol | undefined +/** + * Possible values for a user-defined route record's name. + * + * NOTE: since `RouteRecordName` is a type, it evaluates too early and it's always be {@link RouteRecordNameGeneric}. If you need a typed version use {@link RouteMap | `keyof RouteMap`} + */ +export type RouteRecordName = RouteMapGeneric extends RouteMap + ? RouteRecordNameGeneric + : keyof RouteMap + /** * @internal */