我有一个这样声明的对象:
const State = {
NoState = 0,
FirstState = 1,
SecondState = 2,
...
};
这个State对象定义了一个单向向前的FSM,用数字表示下一步的状态。
是否有一种方法可以从状态的值打印名称本身?我的意思是这个日志:
console.log(State.FirstState);
将以某种方式将'FirstState'字符串打印到控制台。提前谢谢。
你可以查看Typescript enum是如何转换成javascript的。
你在Typescript中的enum:
enum State {
NoState = 0,
FirstState = 1,
SecondState = 2,
};
你的枚举在JS中转换:
var State;
(function (State) {
State[State["NoState"] = 0] = "NoState";
State[State["FirstState"] = 1] = "FirstState";
State[State["SecondState"] = 2] = "SecondState";
})(State || (State = {}));
看起来有点……很难,但是你可以同时拥有int和string:
State.FirstState // 1
State[State.FirstState] // "FirstState"