Typescript: Los argumentos de la expresión de índice en las enumeraciones 'const' deben ser s / del tipo 'cadena' / una cadena literal /

Creado en 22 ene. 2015  ·  3Comentarios  ·  Fuente: microsoft/TypeScript

"Los argumentos de la expresión de índice en las enumeraciones 'const' deben ser del tipo 'cadena'"

Este mensaje de error es bastante ambiguo:
type_string

Parece que debería ser
"El argumento de la expresión de índice de la enumeración 'const' debe ser una cadena literal"

Porque el compilador lo hace:

if (isConstEnumObjectType(objectType) && node.argumentExpression && node.argumentExpression.kind !== SyntaxKind.StringLiteral) {
  error(node.argumentExpression, Diagnostics.Index_expression_arguments_in_const_enums_must_be_of_type_string);
}
Bug help wanted

Comentario más útil

Si alguien tiene el mismo problema, simplemente intente eliminar 'const' y todo funcionará.
Bueno, no es del todo cierto, tienes que hacer algo como:

enum MyEnum{ 
    A, B, C
}

let index = 2;

// this is how you can get the value from the enum without haveing tslint error message.
(<any>MyEnum)[index]

Todos 3 comentarios

Un PR sería apreciado

El mensaje ahora es "Solo se puede acceder a un miembro const enum usando un literal de cadena", me parece bien.

Si alguien tiene el mismo problema, simplemente intente eliminar 'const' y todo funcionará.
Bueno, no es del todo cierto, tienes que hacer algo como:

enum MyEnum{ 
    A, B, C
}

let index = 2;

// this is how you can get the value from the enum without haveing tslint error message.
(<any>MyEnum)[index]
¿Fue útil esta página
0 / 5 - 0 calificaciones

Temas relacionados

weswigham picture weswigham  ·  3Comentarios

fwanicka picture fwanicka  ·  3Comentarios

blendsdk picture blendsdk  ·  3Comentarios

jbondc picture jbondc  ·  3Comentarios

bgrieder picture bgrieder  ·  3Comentarios