Vigia

将 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" } } }

智能体技能(SKILL.md):告诉智能体何时使用 Vigia · 用于拉取请求的 GitHub Action

常见问题

将 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