Skip to content

Commit cba4c93

Browse files
cdeutschsindresorhus
authored andcommitted
Fix the TypeScript types (#185)
Fixes #184
1 parent f958329 commit cba4c93

2 files changed

Lines changed: 10 additions & 4 deletions

File tree

index.d.ts

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -89,8 +89,8 @@ export interface ParseOptions {
8989
readonly parseBooleans?: boolean;
9090
}
9191

92-
export interface ParsedQuery {
93-
readonly [key: string]: string | number | boolean | Array<string | number | boolean> | null | undefined;
92+
export interface ParsedQuery<T = string> {
93+
[key: string]: T | T[] | null | undefined;
9494
}
9595

9696
/**
@@ -100,6 +100,9 @@ The returned object is created with [`Object.create(null)`](https://developer.mo
100100
101101
@param query - The query string to parse.
102102
*/
103+
export function parse(query: string, options: {parseBooleans: true, parseNumbers: true} & ParseOptions): ParsedQuery<string | boolean | number>;
104+
export function parse(query: string, options: {parseBooleans: true} & ParseOptions): ParsedQuery<string | boolean>;
105+
export function parse(query: string, options: {parseNumbers: true} & ParseOptions): ParsedQuery<string | number>;
103106
export function parse(query: string, options?: ParseOptions): ParsedQuery;
104107

105108
export interface ParsedUrl {

index.test-d.ts

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -51,12 +51,15 @@ expectType<queryString.ParsedQuery>(
5151
expectType<queryString.ParsedQuery>(
5252
queryString.parse('?foo=bar', {arrayFormat: 'comma'})
5353
);
54-
expectType<queryString.ParsedQuery>(
54+
expectType<queryString.ParsedQuery<string | number>>(
5555
queryString.parse('?foo=1', {parseNumbers: true})
5656
);
57-
expectType<queryString.ParsedQuery>(
57+
expectType<queryString.ParsedQuery<string | boolean>>(
5858
queryString.parse('?foo=true', {parseBooleans: true})
5959
);
60+
expectType<queryString.ParsedQuery<string | boolean | number>>(
61+
queryString.parse('?foo=true', {parseBooleans: true, parseNumbers: true})
62+
);
6063

6164
// Parse URL
6265
expectType<queryString.ParsedUrl>(queryString.parseUrl('?foo=bar'));

0 commit comments

Comments
 (0)