typecriptでは列挙型で文字列変数を使用できますか? 私はこのような列挙型で文字列を使用することができます:あなたは本当にこれをしたい場合は、あなたが主張する可能性がType 'string' is not assignable to type 'AllDirections'
typescriptの列挙型で文字列変数を使用
0
A
答えて
1
:
enum AllDirections {
TOP = 'top',
BOTTOM = 'bottom',
LEFT = 'left',
RIGHT = 'right',
}
しかし、このコード:エラーと
const top: string = 'top'
const bottom: string = 'bottom'
const left: string = 'left'
const right: string = 'right'
enum AllDirections {
TOP = top,
BOTTOM = bottom,
LEFT = left,
RIGHT = right,
}
結果値:any
:
enum AllDirections {
TOP = top as any,
BOTTOM = bottom as any,
LEFT = left as any,
RIGHT = right as any
}
これをoblemとすると、これらを文字列値に割り当てると、文字列にアサーションが必要になります。それは理想的ではないのです。
let str: string = AllDirections.TOP as any as string;
はまた、それは少し冗長ですが、あなたはメンバーがあなたがオブジェクトを使用して検討することもでき、正しい種類持つようにしたい場合:
// remove the explicit string types so that these are typed
// as their string literal values
const top = 'top';
const bottom = 'bottom';
const left = 'left';
const right = 'right';
type AllDirections = Readonly<{
TOP: typeof top,
BOTTOM: typeof bottom,
LEFT: typeof left,
RIGHT: typeof right
}>;
const AllDirections: AllDirections = {
TOP: top,
BOTTOM: bottom,
LEFT: left,
RIGHT: right
};
を別のオプションはどこ反転することです文字列が格納されています:
enum AllDirections {
TOP = 'top',
BOTTOM = 'bottom',
LEFT = 'left',
RIGHT = 'right',
}
const top = AllDirections.TOP;
const bottom = AllDirections.BOTTOM;
const left = AllDirections.LEFT;
const right = AllDirections.RIGHT;
+0
2番目の解決策は私にとって完璧です。ありがとうございました! – Anton
関連する問題
- 1. TypeScript文字列ベースの列挙型コンパイラエラー
- 2. 文字列ベースの列挙型の変換Typescript 2.4+
- 3. 文字列列挙型はtypescriptですエラー
- 4. typescriptです一般的な関数は、文字列の列挙型
- 5. TypeScript文字列リテラルを列挙する
- 6. C++で列挙型変数の文字列変数を変換する
- 7. typescriptの列挙型のマッピング
- 8. Typescriptのインデックスシグネチャパラメータタイプの列挙型
- 9. Typescriptの文字列型
- 10. 列挙型変数
- 11. 列挙型の名前文字列で列挙型の値を取得
- 12. JSON文字列を列挙型にデシリアライズ
- 13. jqGrid表示列挙型の文字列
- 14. は、文字列の列挙型
- 15. 文字列と列挙型の説明
- 16. 列挙型の文字列表現、NSLog
- 17. 列挙型と文字列の一致
- 18. 変数を使った列挙型の列挙
- 19. React js Typescript文字列配列変数
- 20. 文字列または列挙型
- 21. Rails列挙型シンボル対文字列
- 22. 取得列挙型文字列
- 23. Java MyBatis列挙型文字列値
- 24. 文字列を一般的な列挙型に変換する
- 25. 文字列を列挙型に変換するには?
- 26. 文字列を列挙型に変換する
- 27. 関数のパラメータとしての列挙型vs文字列
- 28. スイッチのケースで列挙型の文字列表現を使用する
- 29. MySQLでは文字列の列挙型を使用した - パフォーマンスの問題
- 30. T-SQL列挙型の数値または文字列
なぜ「top' *」と「 'AllDirections.TOP'」が必要ですか? – jonrsharpe
これはエラー再現の単なる例です。実際には、すべての使用可能なアクションを含む1つのファイルからreduxアクションタイプのリストをインポートしようとしています。このエミュレートをレデューサーのタイプとして使用できるように、別のファイルのenumに割り当てています。 – Anton