使用Vue Router 版本 4(目前在 vue-router-next repo 中的 beta.11 中),有一个关于如何使用 TypeScript 定义元字段自定义类型接口的文档页面。
declare module 'vue-router' {
interface RouteMeta {
// is optional
isAdmin?: boolean
// must be declared by every route
requiresAuth: boolean
}
}
放置在 Vue shim 模块声明中。我的看起来像:
declare module '*.vue' {
import { defineComponent } from 'vue';
const component: ReturnType<typeof defineComponent>;
export default component;
}
declare module 'vue-router' {
interface RouteMeta {
isPublic?: boolean;
}
}
但是,这是行不通的。相反,这种定义接口的方式似乎覆盖了包附带的接口,或者更确切地说,声明“vue-router”模块似乎可以做到这一点。
定义自定义元字段类型的正确方法是什么?