我很好奇为什么TypeScript转换程序会将枚举编译成字典查找,而不是简单的对象。下面是一个示例TypeScript enum:
enum transactionTypesEnum {
None = 0,
OSI = 4,
RSP = 5,
VSP = 6,
SDIV = 7,
CDIV = 8
}以下是TypeScript发布的JS代码:
var TransactionTypes;
(function (TransactionTypes) {
TransactionTypes[TransactionTypes["None"] = 0] = "None";
TransactionTypes[TransactionTypes["OSI"] = 4] = "OSI";
TransactionTypes[TransactionTypes["RSP"] = 5] = "RSP";
TransactionTypes[TransactionTypes["VSP"] = 6] = "VSP";
TransactionTypes[TransactionTypes["SDIV"] = 7] = "SDIV";
TransactionTypes[TransactionTypes["CDIV"] = 8] = "CDIV";
})(TransactionTypes || (TransactionTypes = {}));我好奇的是,为什么TypeScript不简单地这样做:
var TransactionTypes = {
None: 0,
OSI: 4,
RSP: 5,
VSP: 6,
SDIV: 7,
CDIV: 8
}发布于 2018-10-22 12:42:48
TypeScript enum类型提供了一个安全的双向映射,因此您可以根据以下所有内容获得名称或值(例如从值中获取值、从值中获取名称以及从普通字符串中获取值)
enum Musketeers {
CAV = 0,
BAS = 1,
USR = 2
}
const selection = Musketeers.BAS;
// 1
console.log(selection);
const selectionName = Musketeers[selection];
// BAS
console.log(selectionName);
const fromString = Musketeers['BAS'];
// 1
console.log(fromString);尤其是,字典不支持这一行(不编写额外代码):
// Gets the name from the value
const selectionName = Musketeers[1];https://stackoverflow.com/questions/52929362
复制相似问题