"Argumentos de expressão de índice em enums 'const' devem ser do tipo 'string'"
Esta mensagem de erro é bastante ambígua:
Parece que deveria ser
"O argumento da expressão de índice de 'const' enum deve ser uma string literal"
Porque o compilador faz isso:
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);
}
Um RP seria apreciado
A mensagem agora é "Um membro const enum só pode ser acessado usando uma string literal.", Parece bom para mim.
Se alguém tiver o mesmo problema, tente remover 'const' e tudo funcionará.
Bem, não é totalmente verdade, você tem que fazer 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]
Comentários muito úteis
Se alguém tiver o mesmo problema, tente remover 'const' e tudo funcionará.
Bem, não é totalmente verdade, você tem que fazer algo como: