Typescript: Indexausdrucksargumente in 'const'-Enums müssen vom Typ' string '/ a string literal / sein.

Erstellt am 22. Jan. 2015  ·  3Kommentare  ·  Quelle: microsoft/TypeScript

"Indexausdrucksargumente in 'const'-Enums müssen vom Typ' string 'sein"

Diese Fehlermeldung ist nicht eindeutig:
type_string

Scheint, dass es sein sollte
"Das Indexausdrucksargument von 'const' enum muss ein String-Literal sein."

Weil der Compiler dies tut:

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

Hilfreichster Kommentar

Wenn jemand das gleiche Problem hat, versuchen Sie einfach, 'const' zu entfernen, und alles wird einfach funktionieren.
Nun, es ist nicht ganz richtig, Sie müssen etwas tun wie:

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]

Alle 3 Kommentare

Eine PR wäre dankbar

Die Meldung lautet jetzt "Auf ein Const-Enum-Mitglied kann nur mit einem String-Literal zugegriffen werden.", Sieht für mich gut aus.

Wenn jemand das gleiche Problem hat, versuchen Sie einfach, 'const' zu entfernen, und alles wird einfach funktionieren.
Nun, es ist nicht ganz richtig, Sie müssen etwas tun wie:

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]
War diese Seite hilfreich?
0 / 5 - 0 Bewertungen