添加链接
link管理
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接
2

在VueRouter中使用route.query时,得到的类型是LocationQuery

export declare type LocationQuery = Record<string, LocationQueryValue | LocationQueryValue[]>;

而query中的参数类型为 (string|null) | (string|null)[]

而正常情况下我们默认query中的参数都是string类型。

其实如果你的链接上有多个同名query,route.query会返回一个数组

// www.anyurl.com?name=123&name=456
console.log(route.query) // ['123', '456']

但是绝大多数情况下我们不会这样玩。

使用的时候我们认为query的值都是string,所以全部as一下是可以的。
const aa = route.query.status as string

更方便的办法是在.d.ts文件中扩展route.query的类型

如下:

import 'vue-router'
declear module 'vue-router' {
    interface RouteLocationNormalizedLoaded {
        query: Record<string, string>