[SOLVED] When does the Express req.query variable get different types


I noticed that the type of query parameters in req.query is

string | string[] | QueryString.ParsedQS | QueryString.ParsedQS[]

but so far, whenever i used req.query i always got strings.

My questions are

  1. What is the QueryString.ParsedQS type?
  2. When will the parameter be an array?
  3. When will the parameter be a QueryString.ParsedQS


The type string | string[] | QueryString.ParsedQS | QueryString.ParsedQS[] is the type returned by qs.parse() method, take a look here at the declaration file: https://github.com/DefinitelyTyped/DefinitelyTyped/blob/master/types/qs/index.d.ts#L57.

Take a look at the qs documentation for possible return values of qs.parse():

For req.query to be parsed from string to object you need to call express app.set('query parser', 'extended'), extended is the default value but you may have changed it in your code:

Answered By – Andrei

Answer Checked By – Robin (BugsFixing Admin)

Leave a Reply

Your email address will not be published. Required fields are marked *