Hacktoberfest 2026:メンテナが10月に向けて印を付けた、オープンで初心者向けの issue。 Hacktoberfest の issue を見る

[Bug]: http-client-js expand guards use truthy check, dropping falsy values like false and 0

オープン 初心者向け
#10,264 コメント 0 件 リアクション 1 件 担当者 0 名 GitHub で見る

メンテナーはふだん 1 日以内に返信

まだ誰も着手していません。

  • #10965 @sugiruu による — マージされずにクローズ

評価

難易度
2/5
見積もり時間
1〜3時間
初心者へのやさしさ
68/100
issue の種類
バグ
明瞭さ
明確に書かれている
活発さ
静か
技術スタック
typescript
領域
api

調査の方向性

URI template expand キーが条件付きオブジェクトスプレッドを生成する http-client-js emitter から始めます。false、0、空文字列の値で問題を再現し、その後 guards を更新して定義済みの値が保持されるようにし、undefined の値が引き続き省略されることを確認します。

索引モデルが issue の本文から書いたものです。

説明

emitter:client:js
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
主要言語
Java
スター
5.9k
フォーク
403
平均マージ
3日 8時間
マージ済み PR(30日)
101

環境構築

Codespaces で開く

このプロジェクトの開発コンテナを、あなたの GitHub アカウントでブラウザ上に起動します。

はじめの一歩

  1. issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
  2. 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
  3. リポジトリをフォークし、ブランチを切って変更します。
  4. issue 番号を参照したプルリクエストを送ります。

microsoft/typespec のほかの issue

microsoft/typespec の issue をすべて見る

似ている issue

Java の issue をもっと見る

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。