microsoft / microsoft/TypeScript
"Unassigned parameter" analysis doesn't account for local var declarations
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
In JS, it's legal to have a var declaration merge with a parameter declaration. By doing this and creating one with an initializer, you can get around TypeScript 4.4's "is this parameter ever assigned to?" checks for aliased conditions.
function foo(x: string | number) {
// Try uncommenting (1) and (2)
// (1)
// var x: string | number = 42;
// (2)
// x = 42;
const a = typeof x === "string";
if (a) {
x // observe the type switch between `string` and `never` here.
}
}
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 foo del issue y compara la declaración comentada var x con el caso de asignación directa. Sigue el análisis que decide si alguna vez se asigna un valor a un parámetro y verifica después que una declaración local var con un inicializador se tenga en cuenta sin producir el estrechamiento incorrecto mostrado en el ejemplo.
Escrito por el modelo de indexación a partir del texto del issue.
Evaluación
- Stack tecnológico
- javascript, 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
- 45/100