[Bug]: http-client-js expand guards use truthy check, dropping falsy values like false and 0
维护者通常 1 天内回复
还没有人认领这个 Issue。
- #10965 来自 @sugiruu —— 已关闭,未合并
评估
- 难度
- 2/5
- 预计耗时
- 1-3 小时
- 新手友好度
- 68/100
- Issue 类型
- 缺陷
- 描述清晰度
- 描述清楚
- 活跃度
- 冷清
- 技术栈
- typescript
- 领域
- api
调研方向
从 http-client-js emitter 开始,其中 URI template expand keys 会生成条件对象展开。使用 false、0 和空字符串值复现该问题,然后更新 guards,使已定义的值得以保留,并验证 undefined 值仍然会被省略。
由索引模型根据 Issue 内容生成。
描述
Describe the bug
The http-client-js emitter generates truthy guards (&&) for URI template expand keys. This means falsy values like false, 0, and "" are silently dropped from the query string.
Reproduction
TypeSpec definition:
model ListParams {
@query isActive?: boolean;
@query page?: int32;
}
Generated code:
...(options?.isActive && { isActive: options.isActive }),
...(options?.page && { page: options.page }),
Calling with { isActive: false } or { page: 0 } drops the param entirely because false && { ... } and 0 && { ... } short-circuit.
Expected: Use nullish checks instead of truthy checks:
...(options?.isActive != undefined && { isActive: options.isActive }),
...(options?.page != undefined && { page: options.page }),
Versions: @typespec/[email protected], @typespec/[email protected]
Checklist
- Follow our Code of Conduct
- Check that there isn't already an issue that request the same bug to avoid creating a duplicate.
- Check that this is a concrete bug. For Q&A open a GitHub Discussion.
- The provided reproduction is a minimal reproducible example of the bug.
- 主要语言
- Java
- 星标
- 5.9k
- 派生
- 403
- 平均合并
- 3 天 1 小时
- 30 天内合并 PR
- 98
环境准备
在浏览器里用你自己的 GitHub 账号启动这个项目的开发容器。
- 没有 Dockerfile 或 Docker Compose 文件
- 没有 Pull Request 模板
- 阅读贡献指南
从这里开始
- 先读完整个 Issue,再读项目的贡献指南。
- 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
- Fork 仓库,在一个分支上完成修改。
- 提交 Pull Request,并在描述里引用这个 Issue 编号。
microsoft/typespec 的其他 Issue
-
[Bug]: `@encode(string)` int64 default becomes `null`, and numeric examples ignore the encoding可能已有人在做 @Om-singhaI 于 17 天前认领。 未关闭bug compiler:core triaged:core
难度 2/5 1-3 小时 新手友好度 78/100
microsoft/typespec#12059 · 1 条评论 · 1 个 reaction ·
维护者通常 1 天内回复
-
Http-client-js operation response on the client doesn't carry the return type可能已有人在做 @reginaldalfret 于 15 天前认领。 未关闭emitter:client:js
难度 2/5 1-3 小时 新手友好度 68/100
microsoft/typespec#11853 · 1 个 reaction ·
维护者通常 1 天内回复
-
[Bug]: @terminalEvent on a model-payload variant emits an unconstrained oneOf branch in OpenAPI 3.2 SSE output可能已有人在做 @Shubham-Padkonde 于 25 天前认领。 未关闭bug emitter:openapi3 triaged:core
难度 2/5 1-3 小时 新手友好度 82/100
microsoft/typespec#11747 · 1 条评论 · 1 个 reaction ·
维护者通常 1 天内回复
-
[Bug]: [http-server-csharp] Model with a `Record<unknown>[]` property generates C# that does not compile (missing `using System.Text.Json.Nodes;`)可能重新可做 @nightcityblade 于 45 天前认领,目前没有进行中的 PR。 未关闭bug emitter:service:csharp triaged:core
难度 2/5 1-3 小时 新手友好度 72/100
microsoft/typespec#11733 · 2 条评论 · 1 个 reaction ·
维护者通常 1 天内回复
-
emitter:client:java feature
难度 2/5 1-3 小时 新手友好度 72/100
microsoft/typespec#11076 · 1 条评论 · 1 个 reaction ·
维护者通常 1 天内回复
查看 microsoft/typespec 的全部 Issue
相似的 Issue
-
approved bug
难度 2/5 1-3 小时 新手友好度 70/100
checkstyle/checkstyle#21981 · 1 条评论 ·
维护者通常 1 天内回复
-
难度 2/5 1-3 小时 新手友好度 68/100
beehive-lab/TornadoVM#1248 ·
维护者通常 1 天内回复
-
bug jdbc-v2
难度 2/5 1-3 小时 新手友好度 70/100
ClickHouse/clickhouse-java#3214 ·
维护者通常 1 天内回复
-
area: detector eco: java help wanted lane: free-agent roadmap size: S type: parser
难度 2/5 1-3 小时 新手友好度 62/100
arminazimi/evergreen#355 ·
维护者通常 1 天内回复
-
难度 2/5 1-3 小时 新手友好度 70/100
micronaut-projects/micronaut-data#4134 ·
维护者通常 1 天内回复