Creating a type declaration for `next`
Author: MidnighterCreated May 7, 2019Updated Jul 15, 2025
LabelsTypescripthas PRfixed on 4.x
What problem does this feature solve?
At the moment there is a type definition for NavigationGuard in router.d.ts. This works nicely. Within that, the next argument is a function that accepts a union of different types as argument.
next: (to?: RawLocation | false | ((vm: V) => any) | void) => voidI think it'd be neat to easily use this just like the Route interface declaration in, for example, a components navigation guard.
What does the proposed API look like?
Export a type definition maybe called NavigationGuardCallback in router.d.ts.
export type NavigationGuardCallback = (to?: RawLocation | false | ((vm: V) => any) | void) => void;
export type NavigationGuard<V extends Vue = Vue> = (
to: Route,
from: Route,
next: NavigationGuardCallback
) => any;Source: vuejs/vue-router