microsoft / microsoft/TypeScript
Narrow the parent type of a singleton type to never in the false branch
Nadie ha tomado este issue todavía.
- Lenguaje dominante
- Go
- Estrellas
- 111k
- Forks
- 14.3k
- Merge medio
- 1 d 19 h
- PR fusionados (30 d)
- 117
Descripción
If the type of the member checked is not falsy (and so is never in the false branch).
TypeScript Version: 2.7.0-dev.201xxxxx
Code
const x: {a: 1, b: 2} = { a: 1, b: 2 };
if (x.a) {
}
else {
x.a;
}
Expected behavior:
type of x in the else branch is never.
Actual behavior:
type of x is {a: 1. b: 2}, and x.a is (counterintuitively) never.
This would bring the behavior of truthiness guards in line with our new behavior for in type guards.
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 reproduciendo el ejemplo proporcionado con el TypeScript compiler, preferiblemente contra typescript@next, tal como se solicita. Rastrea el comportamiento de narrowing del truthiness guard y compáralo con el comportamiento indicado del type guard in; se considera completado cuando x se reduce a never en la rama falsa, preservando al mismo tiempo el tipo esperado de x.a.
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
- Bastante claro
- Aptitud para principiantes
- 42/100