将 query-string 从 9.x 升级到 10.x
根据 TypeScript 类型自动比较 query-string 9.5.1 与 10.0.0 的公开 API。签名变化表示可能存在不兼容变更,并非确定结论。
概要
| 已删除的导入路径 | 0 |
|---|---|
| 已删除的导出 | 0 |
| 已修改的签名 | 12 |
| 已删除的类或接口成员 | 0 |
| 已修改的类或接口成员 | 0 |
| 新增弃用 | 0 |
| 要求变化(engines、peer 依赖) | 1 |
| 新增导出 | 0 |
已删除的导出
未发现。
已修改的签名
| export | 之前 | 之后 |
|---|---|---|
query-string · ParsedUrl | { readonly url: string; readonly query: ParsedQuery<string>; readonly fragmentIdentifier?: string | undefined; } | { readonly url: string; readonly query: ParsedQuery<T>; readonly fragmentIdentifier?: string | undefined; } |
query-string · UrlObject | { readonly url: string; readonly query?: StringifiableRecord | undefined; readonly fragmentIdentifier?: string | undefined; } | { readonly url: string; readonly query?: Record<string, any> | undefined; readonly fragmentIdentifier?: string | undefined; } |
query-string · ParseOptions | { readonly decode?: boolean | undefined; readonly arrayFormat?: "bracket" | "index" | "comma" | "separator" | "bracket-separator" | "colon-list-separator" | "none" | undefined; readonly arrayFormatSeparator?: string | undefined; readonly sort?: false | ((itemLeft: string, itemRight: string) => number) | undefined; readonly parseNumbers?: boolean | undefined; readonly parseBooleans?: boolean | undefined; readonly parseFragmentIdentifier?: boolean | undefined; readonly types?: Record<string, "string" | "number" | "boolean" | "string[]" | "number[]" | ((value: string) => unknown)> | undefined; } | { readonly decode?: boolean | undefined; readonly arrayFormat?: "bracket" | "index" | "comma" | "separator" | "bracket-separator" | "colon-list-separator" | "none" | undefined; readonly arrayFormatSeparator?: string | undefined; readonly sort?: boolean | ((itemLeft: string, itemRight: string) => number) | undefined; readonly parseNumbers?: boolean | undefined; readonly parseBooleans?: boolean | undefined; readonly parseFragmentIdentifier?: boolean | undefined; readonly types?: Record<string, "string" | "number" | "boolean" | "string[]" | "number[]" | ((value: string) => unknown)> | undefined; … |
query-string · StringifyOptions | { readonly strict?: boolean | undefined; readonly encode?: boolean | undefined; readonly arrayFormat?: "bracket" | "index" | "comma" | "separator" | "bracket-separator" | "colon-list-separator" | "none" | undefined; readonly arrayFormatSeparator?: string | undefined; readonly sort?: false | ((itemLeft: string, itemRight: string) => number) | undefined; readonly skipNull?: boolean | undefined; readonly skipEmptyString?: boolean | undefined; readonly replacer?: ((key: string, value: unknown) => unknown) | undefined; } | { readonly strict?: boolean | undefined; readonly encode?: boolean | undefined; readonly arrayFormat?: "bracket" | "index" | "comma" | "separator" | "bracket-separator" | "colon-list-separator" | "none" | undefined; readonly arrayFormatSeparator?: string | undefined; readonly sort?: boolean | ((itemLeft: string, itemRight: string) => number) | undefined; readonly skipNull?: boolean | undefined; readonly skipEmptyString?: boolean | undefined; readonly replacer?: ((key: string, value: unknown) => unknown) | undefined; } |
query-string/base · pick | (url: string, keys: readonly string[], options?: (ParseOptions & StringifyOptions) | undefined): string | (url: string, filter: (key: string, value: string | number | boolean) => boolean, options?: ({ parseBooleans: true; parseNumbers: true; } & ParseOptions & StringifyOptions) | undefined): string | (url: string, filter: (key: string, value: string | boolean) => boolean, options?: ({ parseBooleans: true; } & ParseOptions & StringifyOptions) | undefined): string | (url: string, filter: (key: string, value: string | number) => boolean, options?: ({ parseNumbers: true; } & ParseOptions & Stringi… | (url: string, keys: readonly string[], options?: (ParseOptions & StringifyOptions) | undefined): string | <Options extends ParseOptions & StringifyOptions>(url: string, filter: (key: string, value: ParsedValue<Options> | (ParsedValue<Options> | null)[] | null) => boolean, options?: KnownOptions<Options> | undefined): string |
query-string/base · parse | (query: string, options: { parseBooleans: true; parseNumbers: true; } & ParseOptions): ParsedQuery<string | number | boolean> | (query: string, options: { parseBooleans: true; } & ParseOptions): ParsedQuery<string | boolean> | (query: string, options: { parseNumbers: true; } & ParseOptions): ParsedQuery<string | number> | (query: string, options?: ParseOptions | undefined): ParsedQuery<string> | <Options extends ParseOptions>(query: string, options?: KnownOptions<Options> | undefined): ParsedQuery<ParsedValue<Options>> |
query-string/base · exclude | (url: string, keys: readonly string[], options?: (ParseOptions & StringifyOptions) | undefined): string | (url: string, filter: (key: string, value: string | number | boolean) => boolean, options?: ({ parseBooleans: true; parseNumbers: true; } & ParseOptions & StringifyOptions) | undefined): string | (url: string, filter: (key: string, value: string | boolean) => boolean, options?: ({ parseBooleans: true; } & ParseOptions & StringifyOptions) | undefined): string | (url: string, filter: (key: string, value: string | number) => boolean, options?: ({ parseNumbers: true; } & ParseOptions & Stringi… | (url: string, keys: readonly string[], options?: (ParseOptions & StringifyOptions) | undefined): string | <Options extends ParseOptions & StringifyOptions>(url: string, filter: (key: string, value: ParsedValue<Options> | (ParsedValue<Options> | null)[] | null) => boolean, options?: KnownOptions<Options> | undefined): string |
query-string/base · parseUrl | (url: string, options?: ParseOptions | undefined): ParsedUrl | <Options extends ParseOptions>(url: string, options?: KnownOptions<Options> | undefined): ParsedUrl<ParsedValue<Options>> |
query-string/base · ParsedUrl | { readonly url: string; readonly query: ParsedQuery<string>; readonly fragmentIdentifier?: string | undefined; } | { readonly url: string; readonly query: ParsedQuery<T>; readonly fragmentIdentifier?: string | undefined; } |
query-string/base · UrlObject | { readonly url: string; readonly query?: StringifiableRecord | undefined; readonly fragmentIdentifier?: string | undefined; } | { readonly url: string; readonly query?: Record<string, any> | undefined; readonly fragmentIdentifier?: string | undefined; } |
query-string/base · ParseOptions | { readonly decode?: boolean | undefined; readonly arrayFormat?: "bracket" | "index" | "comma" | "separator" | "bracket-separator" | "colon-list-separator" | "none" | undefined; readonly arrayFormatSeparator?: string | undefined; readonly sort?: false | ((itemLeft: string, itemRight: string) => number) | undefined; readonly parseNumbers?: boolean | undefined; readonly parseBooleans?: boolean | undefined; readonly parseFragmentIdentifier?: boolean | undefined; readonly types?: Record<string, "string" | "number" | "boolean" | "string[]" | "number[]" | ((value: string) => unknown)> | undefined; } | { readonly decode?: boolean | undefined; readonly arrayFormat?: "bracket" | "index" | "comma" | "separator" | "bracket-separator" | "colon-list-separator" | "none" | undefined; readonly arrayFormatSeparator?: string | undefined; readonly sort?: boolean | ((itemLeft: string, itemRight: string) => number) | undefined; readonly parseNumbers?: boolean | undefined; readonly parseBooleans?: boolean | undefined; readonly parseFragmentIdentifier?: boolean | undefined; readonly types?: Record<string, "string" | "number" | "boolean" | "string[]" | "number[]" | ((value: string) => unknown)> | undefined; … |
query-string/base · StringifyOptions | { readonly strict?: boolean | undefined; readonly encode?: boolean | undefined; readonly arrayFormat?: "bracket" | "index" | "comma" | "separator" | "bracket-separator" | "colon-list-separator" | "none" | undefined; readonly arrayFormatSeparator?: string | undefined; readonly sort?: false | ((itemLeft: string, itemRight: string) => number) | undefined; readonly skipNull?: boolean | undefined; readonly skipEmptyString?: boolean | undefined; readonly replacer?: ((key: string, value: unknown) => unknown) | undefined; } | { readonly strict?: boolean | undefined; readonly encode?: boolean | undefined; readonly arrayFormat?: "bracket" | "index" | "comma" | "separator" | "bracket-separator" | "colon-list-separator" | "none" | undefined; readonly arrayFormatSeparator?: string | undefined; readonly sort?: boolean | ((itemLeft: string, itemRight: string) => number) | undefined; readonly skipNull?: boolean | undefined; readonly skipEmptyString?: boolean | undefined; readonly replacer?: ((key: string, value: unknown) => unknown) | undefined; } |
已删除的类或接口成员
未发现。
已修改的类或接口成员
未发现。
新增弃用
未发现。
要求变化(engines、peer 依赖)
| 之前 | 之后 | |
|---|---|---|
engines.node | >=18 | >=22 |
把这些数据交给你的 AI 智能体
Vigia 是免费的 MCP 服务器:你的编程智能体在写代码之前就能检查版本、不兼容变更和安全漏洞。无需注册,无需 API 密钥。
claude mcp add --transport http vigia https://vigia.coredls.cloud/mcp
添加到 Cursor添加到 VS Code★ 在 GitHub 上加星
任何其他 MCP 客户端
{ "mcpServers": { "vigia": { "url": "https://vigia.coredls.cloud/mcp" } } }常见问题
将 query-string 从 9 升级到 10 有哪些不兼容变更?
在 query-string 9.5.1 与 10.0.0 之间,Vigia 发现 0 个已删除的导出、12 个已修改的签名,以及 0 个已删除或修改的类或接口成员。
query-string 10 中弃用了哪些内容?
query-string 10.0.0 中有 0 个导出或成员新被标记为弃用。
供智能体使用
GET https://vigia.coredls.cloud/v1/packages/npm/query-string/upgrade?from=9.5.1&to=10.0.0