microsoft / microsoft/TypeScript
Enum keys not accepted as computed properties if their name is not a valid identifier
Nadie ha tomado este issue todavía.
- Lenguaje dominante
- Go
- Estrellas
- 111k
- Forks
- 14.3k
- Merge medio
- 2 d 4 h
- PR fusionados (30 d)
- 132
Descripción
TypeScript Version: 2.9.2
Search Terms: computed property name
Code
enum Type {
Foo = 'foo',
'3x14' = '3x14'
}
type TypeMap = {
[Type.Foo]: any
[Type['3x14']]: any
}
Expected behavior:
Type['3x14'] to be usable as a computed key in a type definition.
Actual behavior:
A computed property name in a type literal must refer to an expression whose type is a literal type or a 'unique symbol' type.
This is the case even for Type.Foo if it's written as Type['Foo'] instead; so it seems there is some early bailout when the bracket operator is involved. For certain key names it may not be possible to write them without resorting to brackets, like a name that starts with a digit.
Playground Link: Link
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 ejemplo de TypeScript 2.9.2 en el Playground enlazado y compara después la forma aceptada [Type.Foo] con la forma rechazada [Type['3x14']]. Rastrea la comprobación de nombres de propiedades calculadas para el acceso a miembros de un enum y confirma que el acceso mediante corchetes a un miembro de enum que no es un identificador se acepta como un tipo literal.
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
- Activo
- Claridad
- Bastante claro
- Aptitud para principiantes
- 55/100