microsoft / microsoft/TypeScript
`unknown && false` is too loosely typed
Nadie ha tomado este issue todavía.
- Lenguaje dominante
- Go
- Estrellas
- 111k
- Forks
- 14.4k
- Merge medio
- 1 d 19 h
- PR fusionados (30 d)
- 117
Descripción
Bug Report
The following code should type-check: https://www.typescriptlang.org/play?#code/FAFwngDgpgBAYgQwDYGcwwLwwHYFclIwA+Mu2AJlAGYCW2U5xMVyKsJeAtgEZQBOTAAzYmAIlFMAEgBUAsgBkAggQDCAewJQAxiBprswYFTI69IqmrUAKAB4AuUtgDW2NQHdsASgeJU6AN7AMMEwfFAguHwiNjAAZLHMrFDAAL7AQA
🔎 Search Terms
unknown falsy false and &&
🕗 Version & Regression Information
Please keep and fill in the line that best applies:
- This is the behavior in every version I tried, and I reviewed the FAQ for entries about unknown values and &&
⏯ Playground Link
Playground link with relevant code
💻 Code
type Falsy = null | undefined | false | number | 0n | "" | HTMLAllCollection
function foo(x: unknown): Falsy {
return x && false
}
🙁 Actual behavior
Fails to type-check
🙂 Expected behavior
Should type-check
This would be improved further if:
- NaN was its own type, so
Falsycould be more specific thannumber. (#28682) Falsy/Truthywere built in types.HTMLAllCollectionvariant could be omitted as a legacy value sincedocument.allis deprecated and it's otherwise the case that objects are not falsy.
Guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Línea de trabajo
Comienza con el ejemplo enlazado de TypeScript Playground y reproduce el fallo de comprobación de tipos informado para la función foo. Sigue cómo el compilador trata unknown, && y el tipo de retorno Falsy; se considera terminado cuando el ejemplo pasa la comprobación de tipos como se espera.
Escrito por el modelo de indexación a partir del texto del issue.
Evaluación
- Stack tecnológico
- typescript
- Área
- compilers
- Tipo de issue
- Error
- Dificultad
- 4/5
- Tiempo estimado
- 3-5 días
- Estado de actividad
- Estancado
- Claridad
- Bien especificado
- Aptitud para principiantes
- 42/100