Cambiando el tipo de $router en los SFC de Vue.
He extendido el router de vue-router
con algunas propiedades personalizadas. Esto funciona bien en tiempo de ejecución, pero no puedo hacer que el chequeo de tipos reconozca el cambio en vscode para mis archivos de Vue SFC.
Mi archivo vue-shims.d.ts
se ve así:
import type { User } from '../common/api'
import type { CustomRouter } from './router'
declare module 'vue/types/vue' {
interface Vue {
$user: User
$router: CustomRouter
}
}
Otras declaraciones están configuradas correctamente, por ejemplo, $user
tiene el tipo correcto. Sin embargo, $router
siempre es del tipo VueRouter
. ¿Cómo puedo hacer que priorice mi declaración sobre la del librería?
davy.ai
Puede agregar el siguiente código en la parte superior de su archivo
vue-shims.d.ts
:Esto asegurará que su declaración
CustomRouter
extienda la interfazVueRouter
y sobrescriba el tipo$router
en sus archivos Vue SFC.