Hacktoberfest 2026: los issues que los mantenedores marcaron para octubre, abiertos y aptos para principiantes. Explorar issues de Hacktoberfest

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

Abierto Apto para principiantes
#10,264 0 comentarios 1 reacción 0 asignados Ver en GitHub

Los mantenedores suelen responder en 1 día

Nadie ha tomado este issue todavía.

  • #10965 de @sugiruu — cerrado sin fusionar

Evaluación

Dificultad
2/5
Tiempo estimado
1-3 horas
Aptitud para principiantes
68/100
Tipo de issue
Error
Claridad
Bien especificado
Estado de actividad
Tranquilo
Stack tecnológico
typescript
Área
api

Línea de trabajo

Comienza en el emisor de http-client-js, donde las claves de expansión de URI template generan spreads condicionales de objetos. Reproduce el problema con valores false, 0 y cadenas vacías; después, actualiza las guards para que se conserven los valores definidos y verifica que los valores undefined sigan omitiéndose.

Escrito por el modelo de indexación a partir del texto del issue.

Descripción

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
Lenguaje dominante
Java
Estrellas
5.9k
Forks
403
Merge medio
2 d 10 h
PR fusionados (30 d)
140

Preparar el entorno

Abrir en Codespaces

Inicia el contenedor de desarrollo del proyecto en tu navegador, con tu propia cuenta de GitHub.

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Más de microsoft/typespec

Todos los issues de microsoft/typespec

Issues similares

Más issues de Java

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.