]> git.ipfire.org Git - thirdparty/vuejs/router.git/commitdiff
feat(types): make meta type safe with unknown
authorEduardo San Martin Morote <posva13@gmail.com>
Sat, 23 Jan 2021 17:37:53 +0000 (18:37 +0100)
committerEduardo San Martin Morote <posva13@gmail.com>
Sat, 23 Jan 2021 17:38:17 +0000 (18:38 +0100)
src/types/index.ts
test-dts/meta.test-d.ts

index 561d449ff1d04503f9d19858c63b97ccb66b7819..5a05acdf2903e9efe190809b2ed161f4636f0a78 100644 (file)
@@ -249,8 +249,18 @@ export interface _RouteRecordBase extends PathParserOptions {
 
 /**
  * Interface to type `meta` fields in route records.
+ *
+ * @example
+ *
+ * ```ts
+ * declare module 'vue-router' {
+ *   interface RouteMeta {
+ *     requiresAuth?: boolean
+ *   }
+ *  }
+ * ```
  */
-export interface RouteMeta extends Record<string | number | symbol, any> {}
+export interface RouteMeta extends Record<string | number | symbol, unknown> {}
 
 /**
  * @internal
index ac94718b2c6e8b5272eb4ba116b10025b3c99a31..29566a277389a284f2c114e17f5f246d6d6f352a 100644 (file)
@@ -36,6 +36,7 @@ const router = createRouter({
 
 router.beforeEach(to => {
   expectType<{ requiresAuth?: Boolean; nested: { foo: string } }>(to.meta)
+  expectType<unknown>(to.meta.lol)
   if (to.meta.nested.foo == 'foo' || to.meta.lol) return false
 })