Express - Request.query 类型定义是 ParsedQs。为什么是递归的?
Express - Request.query type definition is ParsedQs. Why is it recursive?
request.query
的类型是 ParsedQs
,其定义如下:
interface ParsedQs {
[key: string]: undefined
| string
| string[]
| ParsedQs
| ParsedQs[]
}
我对每种类型的猜测如下:
参数中未提及的值为 undefined
。
例如:当参数为 ?a=1
.
时读取 request.query.b
一个值在参数中被提及一次时就是 string
。
例如:当参数为 ?a=1
.
时读取 request.query.a
一个值在参数中被多次提及时是 string[]
。
例如:当参数为 ?a=1&a=2
.
时读取 request.query.a
但是什么时候值是 ParsedQs
本身?
查询 ?a[x]=b&a[y]=c
被解析为 {"a":{"x":"b","y":"c"}}
。
而?a[x]=b&a=c
被解析为{"a":[{"x":"b"},"c"]}
.
request.query
的类型是 ParsedQs
,其定义如下:
interface ParsedQs {
[key: string]: undefined
| string
| string[]
| ParsedQs
| ParsedQs[]
}
我对每种类型的猜测如下:
参数中未提及的值为
时读取undefined
。
例如:当参数为?a=1
.request.query.b
一个值在参数中被提及一次时就是
时读取string
。 例如:当参数为?a=1
.request.query.a
一个值在参数中被多次提及时是
时读取string[]
。 例如:当参数为?a=1&a=2
.request.query.a
但是什么时候值是 ParsedQs
本身?
查询 ?a[x]=b&a[y]=c
被解析为 {"a":{"x":"b","y":"c"}}
。
而?a[x]=b&a=c
被解析为{"a":[{"x":"b"},"c"]}
.