vue-router中RouteConfig不存在component属性?

下面这段是vue-router官方的类型定义,对外暴露了 type RouteConfig

interface _RouteConfigBase {
  path: string
  name?: string
  children?: RouteConfig[]
  redirect?: RedirectOption
  alias?: string | string[]
  meta?: RouteMeta
  beforeEnter?: NavigationGuard
  caseSensitive?: boolean
  pathToRegexpOptions?: PathToRegexpOptions
}

interface RouteConfigSingleView extends _RouteConfigBase {
  component?: Component
  props?: boolean | Object | RoutePropsFunction
}

interface RouteConfigMultipleViews extends _RouteConfigBase {
  components?: Dictionary<Component>
  props?: Dictionary<boolean | Object | RoutePropsFunction>
}

export type RouteConfig = RouteConfigSingleView | RouteConfigMultipleViews
import { RouteConfig } from 'vue-router'

// 路由表
const form: RouteConfig = {
  path: '/form',
  component: Layout,
  children: [
    {
      path: 'basic',
      component: () => import('@/views/form/Basic.vue')
    }
  ]
}
// 路由表数组
export const localRoutes: RouteConfig[] = [form]

// 通过接口获得的menus,得到权限路由表
export const generateMenus = (
  localRoutes: RouteConfig[],
  menus: IMenuItem[],
  prefix: string
): RouteConfig[] => {
  return localRoutes.reduce((prev: RouteConfig[], next: RouteConfig) => {
    // 这里就是ts报错的地方,提示类型“RouteConfig”上不存在属性“component”
    const { path, children, meta, component } = next
  }, [])
}
阅读 1.7k
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题