Typescript: Argumen ekspresi indeks dalam enum 'const' harus s / berjenis 'string' / string literal /

Dibuat pada 22 Jan 2015  ·  3Komentar  ·  Sumber: microsoft/TypeScript

"Argumen ekspresi indeks dalam enum 'const' harus berjenis 'string'"

Pesan kesalahan ini cukup ambigu:
type_string

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

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:

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]

Semua 3 komentar

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]
Apakah halaman ini membantu?
0 / 5 - 0 peringkat