declare module 'vue-router' 無此部分也無報錯
来源:10-5 架构项目路由系统及对应页面

weixin_慕运维6327115
2023-01-24
老師請問為何要寫
declare module ‘vue-router’ {
interface RouteMeta {
menu?: boolean,
title?: string,
icon?: string,
auth?: boolean
}
}
因為沒寫這部分好像也不會報錯
写回答
1回答
-
西门老舅
2023-01-26
你好,首先我们可以先看一下内置的meta的类型:
meta?: RouteMeta;
export declare interface RouteMeta extends Record<string | number | symbol, unknown> {}
最终解析完,meta的类型如下:
type RouterMeta = {
[x: string]: unknown;
[x: number]: unknown;
[x: symbol]: unknown;
}
也就是说, meta默认是一个索引签名,任何属性都可以作为选项存在。那么意味着就没有约束性了,所以可以扩展RouterMeta来约束具体的属性的类型。
所以你可以尝试把title换成数字类型,就可以看到添加与不添加之间的区别了。
00
相似问题