«Аргументы индексного выражения в перечислениях 'const' должны иметь тип 'строка'»
Это сообщение об ошибке довольно неоднозначно:
Кажется, так и должно быть
"Аргумент индексного выражения перечисления 'const' должен быть строковым литералом"
Потому что компилятор так поступает:
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);
}
PR будет оценен
Сообщение теперь "К члену константного перечисления можно получить доступ только с помощью строкового литерала.", Мне нравится.
Если у кого-то такая же проблема, просто попробуйте удалить «const», и все будет работать.
Ну это не совсем так, нужно сделать что-то вроде:
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]
Самый полезный комментарий
Если у кого-то такая же проблема, просто попробуйте удалить «const», и все будет работать.
Ну это не совсем так, нужно сделать что-то вроде: