]> git.ipfire.org Git - thirdparty/vuejs/router.git/commitdiff
docs: note about generic route record name
authorEduardo San Martin Morote <posva13@gmail.com>
Thu, 13 Jun 2024 08:34:21 +0000 (10:34 +0200)
committerEduardo San Martin Morote <posva13@gmail.com>
Thu, 13 Jun 2024 08:34:21 +0000 (10:34 +0200)
packages/router/src/typed-routes/route-location.ts
packages/router/src/typed-routes/route-records.ts

index b331e51b98d71f04811cb58915a0518a56277c7c..cdcd44a233ee65e137f42d346ea616bebfe736e6 100644 (file)
@@ -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.
index 0cd6d148ff361b1347f06a34fbba41194afd2bc8..0118e58c932ecd96543df4c672497ba478589d5f 100644 (file)
@@ -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
  */