Typescript: Les arguments de l'expression d'index dans les énumérations 'const' doivent être s / de type 'string' / une chaîne littérale /

Créé le 22 janv. 2015  ·  3Commentaires  ·  Source: microsoft/TypeScript

"Les arguments de l'expression d'index dans les énumérations 'const' doivent être de type 'string'"

Ce message d'erreur est assez ambigu:
type_string

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);
}
Bug help wanted

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:

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]

Tous les 3 commentaires

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]
Cette page vous a été utile?
0 / 5 - 0 notes

Questions connexes

kyasbal-1994 picture kyasbal-1994  ·  3Commentaires

manekinekko picture manekinekko  ·  3Commentaires

rigdern picture rigdern  ·  3Commentaires

blendsdk picture blendsdk  ·  3Commentaires

dlaberge picture dlaberge  ·  3Commentaires