"Argumen ekspresi indeks dalam enum 'const' harus berjenis 'string'"
Pesan kesalahan ini cukup ambigu:
Sepertinya memang begitu
"Argumen ekspresi indeks dari 'const' enum harus berupa string literal"
Karena kompilator melakukannya:
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);
}
Seorang PR akan dihargai
Pesannya sekarang adalah "Anggota const enum hanya dapat diakses menggunakan string literal.", Terlihat bagus bagi saya.
Jika seseorang memiliki masalah yang sama, coba hapus 'const' dan semuanya akan berfungsi.
Itu tidak sepenuhnya benar, Anda harus melakukan sesuatu seperti:
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]
Komentar yang paling membantu
Jika seseorang memiliki masalah yang sama, coba hapus 'const' dan semuanya akan berfungsi.
Itu tidak sepenuhnya benar, Anda harus melakukan sesuatu seperti: