"Les arguments de l'expression d'index dans les énumérations 'const' doivent être de type 'string'"
Ce message d'erreur est assez ambigu:
Il semble que ça devrait être
"L'argument d'expression d'index de 'const' enum doit être une chaîne littérale"
Parce que le compilateur le fait:
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 serait apprécié
Le message est maintenant "Un membre const enum ne peut être accédé qu'en utilisant une chaîne littérale.", Me semble bon.
Si quelqu'un a le même problème, essayez simplement de supprimer «const» et tout fonctionnera.
Eh bien, ce n'est pas tout à fait vrai, vous devez faire quelque chose comme:
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]
Commentaire le plus utile
Si quelqu'un a le même problème, essayez simplement de supprimer «const» et tout fonctionnera.
Eh bien, ce n'est pas tout à fait vrai, vous devez faire quelque chose comme: