Typescript: 'const'列挙型のインデックス式引数はs /タイプ 'string' /文字列リテラル/でなければなりません

作成日 2015年01月22日  ·  3コメント  ·  ソース: microsoft/TypeScript

"'const'列挙型のインデックス式引数は 'string'型である必要があります"

このエラーメッセージは非常にあいまいです。
type_string

あるべきだと思われる
「 '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);
}
Bug help wanted

最も参考になるコメント

誰かが同じ問題を抱えている場合は、「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]

全てのコメント3件

PRをいただければ幸いです

メッセージは「constenumメンバーは文字列リテラルを使用してのみアクセスできます。」になりました。

誰かが同じ問題を抱えている場合は、「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]
このページは役に立ちましたか?
0 / 5 - 0 評価