"Los argumentos de la expresión de índice en las enumeraciones 'const' deben ser del tipo 'cadena'"
Este mensaje de error es bastante ambiguo:
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);
}
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]
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: