microsoft / microsoft/TypeScript
Poor error recovery when `enum` is used as a parameter name
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
TypeScript Version: 3.6.2
Search Terms: expression expected reserved word
Code
function converter<Enum>(values: string[], enums: Enum[]): Map<Enum, string> {
return new Map<Enum, string>(
enums.map((enum: Enum, index: number) => [ enum, values[index] ])
);
}
Expected behavior:
After some confusion why this displays so many red curlies, the error should make it clear to me that the reserved word enum is accidentaly being used as an argument name. An error is given on enum saying something along the lines of You cannot use enum as a variable/argument because it is a reserved word.
Actual behavior:
After a LOT of confusion, one realizes that the reserved word enum is accidentally being used as an argument name. An error is given on several parts in the above code, where the most helpful one is Expression expected (ts1109), which is just unnecesarily confusing.
Related Issues:
None that seem related.
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
Reproduce el diagnóstico con el código proporcionado en el TypeScript 3.6.2 Playground y compara después los errores del parser alrededor del nombre del parámetro enum. Mejora el error reportado para que identifique el uso incorrecto de una palabra reservada sin producir diagnósticos en cascada confusos, y verifica el resultado con el mismo ejemplo.
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
- 3/5
- Tiempo estimado
- 1-2 días
- Estado de actividad
- Estancado
- Claridad
- Bien especificado
- Aptitud para principiantes
- 42/100