Hướng dẫn get enum value in javascript - nhận giá trị enum trong javascript

Trong mã JavaScript, tôi có các enum được xác định sau:

MyMessageIds = {
    UndefinedId : 0,
    FilenameId : 1,
    BuildFileId : 2,
    MovementArgsId : 3,
    MoveId : 4,
    ExecuteCommandId : 5
}

Trong hàm JavaScript, tôi muốn có thể cung cấp biểu diễn chuỗi của khóa Enum [tức là "MoveID"] và trả về giá trị số nguyên của nó là 4. Vậy làm thế nào tôi có thể làm điều này?

Được hỏi ngày 17 tháng 9 năm 2016 lúc 20:46Sep 17, 2016 at 20:46

Chuckpchuckpchuckp

2631 Huy hiệu vàng2 Huy hiệu bạc15 Huy hiệu đồng1 gold badge2 silver badges15 bronze badges

3

Chỉ cần sử dụng ký hiệu khung:

var MyMessageIds = {
    UndefinedId : 0,
    FilenameId : 1,
    BuildFileId : 2,
    MovementArgsId : 3,
    MoveId : 4,
    ExecuteCommandId : 5
};

function getValue[key] {
    return MyMessageIds[key];
}

Đã trả lời ngày 19 tháng 9 năm 2016 lúc 17:33Sep 19, 2016 at 17:33

Baaobaaobaao

68.6K16 Huy hiệu vàng131 Huy hiệu bạc187 Huy hiệu đồng16 gold badges131 silver badges187 bronze badges

1

Bạn có thể tạo một số phương thức tiện ích lấy một đối tượng [enum] tìm ra cách lấy các khóa/giá trị.

var MyMessageIds = {
    UndefinedId : 0,
    FilenameId : 1,
    BuildFileId : 2,
    MovementArgsId : 3,
    MoveId : 4,
    ExecuteCommandId : 5
}

function getEnumKeys[enumType] {
  return Object.keys[MyMessageIds];
}

function getEnumValues[enumType] {
  return getEnumKeys[enumType].map[function[key] {
    return enumType[key];
  }];
}

function getEnumValue[enumType, key] {
  return enumType[getEnumKeys[enumType].filter[function[k] {
    return key === k;
  }].pop[] || ''];
}

document.body.innerHTML = '
' + JSON.stringify[{
  'Enum Keys' : getEnumKeys[MyMessageIds],
  'Enum Vals' : getEnumValues[MyMessageIds],
  'Example' : {
    'MoveId' : getEnumValue[MyMessageIds, 'MoveId']
  }
}, null, 4] + '
';

Bạn cũng có thể tạo đối tượng lớp của riêng mình để thể hiện một enum có các phương thức có thể tái sử dụng.

function Enum[] {
  this.self = arguments[0];
}
Enum.prototype = {
  keys : function[] {
    return Object.keys[this.self];
  },
  values : function[] {
    var me = this;
    return this.keys[this.self].map[function[key] {
      return me.self[key];
    }];
  },
  getValueByName : function[key] {
    return this.self[this.keys[this.self].filter[function[k] {
      return key === k;
    }].pop[] || ''];
  },
  getNameByValue : function[value] {
    var me = this;
    return this.keys[this.self].filter[function[k] {
      return me.self[k] === value;
    }].pop[] || null;
  }
};

var MyMessageIds = new Enum[{
    UndefinedId : 0,
    FilenameId : 1,
    BuildFileId : 2,
    MovementArgsId : 3,
    MoveId : 4,
    ExecuteCommandId : 5
}];

document.body.innerHTML = '
' + JSON.stringify[{
  'Enum Keys' : MyMessageIds.keys[],
  'Enum Vals' : MyMessageIds.values[],
  'Example' : {
    'MoveId' : MyMessageIds.getValueByName['MoveId'],
    'Val[3]' : MyMessageIds.getNameByValue[3]
  }
}, null, 4] + '
';

Đã trả lời ngày 19 tháng 9 năm 2016 lúc 18:11Sep 19, 2016 at 18:11

Ông Polywhirlmr. PolywhirlMr. Polywhirl

37.3K12 Huy hiệu vàng80 Huy hiệu bạc127 Huy hiệu đồng12 gold badges80 silver badges127 bronze badges

2

Enums là một trong số ít các tính năng TypeScript không phải là phần mở rộng cấp độ của JavaScript.

Enums cho phép một nhà phát triển xác định một tập hợp các hằng số được đặt tên. Sử dụng Enums có thể giúp dễ dàng ghi lại ý định hoặc tạo ra một tập hợp các trường hợp riêng biệt. TypeScript cung cấp cả enum dựa trên số và chuỗi.

Enum số

Trước tiên, chúng tôi sẽ bắt đầu với các enum số, có lẽ quen thuộc hơn nếu bạn đến từ các ngôn ngữ khác. Một enum có thể được xác định bằng cách sử dụng từ khóa

var MyMessageIds = {
    UndefinedId : 0,
    FilenameId : 1,
    BuildFileId : 2,
    MovementArgsId : 3,
    MoveId : 4,
    ExecuteCommandId : 5
}

function getEnumKeys[enumType] {
  return Object.keys[MyMessageIds];
}

function getEnumValues[enumType] {
  return getEnumKeys[enumType].map[function[key] {
    return enumType[key];
  }];
}

function getEnumValue[enumType, key] {
  return enumType[getEnumKeys[enumType].filter[function[k] {
    return key === k;
  }].pop[] || ''];
}

document.body.innerHTML = '
' + JSON.stringify[{
  'Enum Keys' : getEnumKeys[MyMessageIds],
  'Enum Vals' : getEnumValues[MyMessageIds],
  'Example' : {
    'MoveId' : getEnumValue[MyMessageIds, 'MoveId']
  }
}, null, 4] + '
';
5.

ts

enum Direction {

Up = 1,

Down,

Left,

Right,

}

Try

Ở trên, chúng tôi có một enum số trong đó

var MyMessageIds = {
    UndefinedId : 0,
    FilenameId : 1,
    BuildFileId : 2,
    MovementArgsId : 3,
    MoveId : 4,
    ExecuteCommandId : 5
}

function getEnumKeys[enumType] {
  return Object.keys[MyMessageIds];
}

function getEnumValues[enumType] {
  return getEnumKeys[enumType].map[function[key] {
    return enumType[key];
  }];
}

function getEnumValue[enumType, key] {
  return enumType[getEnumKeys[enumType].filter[function[k] {
    return key === k;
  }].pop[] || ''];
}

document.body.innerHTML = '
' + JSON.stringify[{
  'Enum Keys' : getEnumKeys[MyMessageIds],
  'Enum Vals' : getEnumValues[MyMessageIds],
  'Example' : {
    'MoveId' : getEnumValue[MyMessageIds, 'MoveId']
  }
}, null, 4] + '
';
6 được khởi tạo với
var MyMessageIds = {
    UndefinedId : 0,
    FilenameId : 1,
    BuildFileId : 2,
    MovementArgsId : 3,
    MoveId : 4,
    ExecuteCommandId : 5
}

function getEnumKeys[enumType] {
  return Object.keys[MyMessageIds];
}

function getEnumValues[enumType] {
  return getEnumKeys[enumType].map[function[key] {
    return enumType[key];
  }];
}

function getEnumValue[enumType, key] {
  return enumType[getEnumKeys[enumType].filter[function[k] {
    return key === k;
  }].pop[] || ''];
}

document.body.innerHTML = '
' + JSON.stringify[{
  'Enum Keys' : getEnumKeys[MyMessageIds],
  'Enum Vals' : getEnumValues[MyMessageIds],
  'Example' : {
    'MoveId' : getEnumValue[MyMessageIds, 'MoveId']
  }
}, null, 4] + '
';
7. Tất cả các thành viên sau đây được tự động tăng từ thời điểm đó. Nói cách khác,
var MyMessageIds = {
    UndefinedId : 0,
    FilenameId : 1,
    BuildFileId : 2,
    MovementArgsId : 3,
    MoveId : 4,
    ExecuteCommandId : 5
}

function getEnumKeys[enumType] {
  return Object.keys[MyMessageIds];
}

function getEnumValues[enumType] {
  return getEnumKeys[enumType].map[function[key] {
    return enumType[key];
  }];
}

function getEnumValue[enumType, key] {
  return enumType[getEnumKeys[enumType].filter[function[k] {
    return key === k;
  }].pop[] || ''];
}

document.body.innerHTML = '
' + JSON.stringify[{
  'Enum Keys' : getEnumKeys[MyMessageIds],
  'Enum Vals' : getEnumValues[MyMessageIds],
  'Example' : {
    'MoveId' : getEnumValue[MyMessageIds, 'MoveId']
  }
}, null, 4] + '
';
8 có giá trị
var MyMessageIds = {
    UndefinedId : 0,
    FilenameId : 1,
    BuildFileId : 2,
    MovementArgsId : 3,
    MoveId : 4,
    ExecuteCommandId : 5
}

function getEnumKeys[enumType] {
  return Object.keys[MyMessageIds];
}

function getEnumValues[enumType] {
  return getEnumKeys[enumType].map[function[key] {
    return enumType[key];
  }];
}

function getEnumValue[enumType, key] {
  return enumType[getEnumKeys[enumType].filter[function[k] {
    return key === k;
  }].pop[] || ''];
}

document.body.innerHTML = '
' + JSON.stringify[{
  'Enum Keys' : getEnumKeys[MyMessageIds],
  'Enum Vals' : getEnumValues[MyMessageIds],
  'Example' : {
    'MoveId' : getEnumValue[MyMessageIds, 'MoveId']
  }
}, null, 4] + '
';
7,
function Enum[] {
  this.self = arguments[0];
}
Enum.prototype = {
  keys : function[] {
    return Object.keys[this.self];
  },
  values : function[] {
    var me = this;
    return this.keys[this.self].map[function[key] {
      return me.self[key];
    }];
  },
  getValueByName : function[key] {
    return this.self[this.keys[this.self].filter[function[k] {
      return key === k;
    }].pop[] || ''];
  },
  getNameByValue : function[value] {
    var me = this;
    return this.keys[this.self].filter[function[k] {
      return me.self[k] === value;
    }].pop[] || null;
  }
};

var MyMessageIds = new Enum[{
    UndefinedId : 0,
    FilenameId : 1,
    BuildFileId : 2,
    MovementArgsId : 3,
    MoveId : 4,
    ExecuteCommandId : 5
}];

document.body.innerHTML = '
' + JSON.stringify[{
  'Enum Keys' : MyMessageIds.keys[],
  'Enum Vals' : MyMessageIds.values[],
  'Example' : {
    'MoveId' : MyMessageIds.getValueByName['MoveId'],
    'Val[3]' : MyMessageIds.getNameByValue[3]
  }
}, null, 4] + '
';
0 có
function Enum[] {
  this.self = arguments[0];
}
Enum.prototype = {
  keys : function[] {
    return Object.keys[this.self];
  },
  values : function[] {
    var me = this;
    return this.keys[this.self].map[function[key] {
      return me.self[key];
    }];
  },
  getValueByName : function[key] {
    return this.self[this.keys[this.self].filter[function[k] {
      return key === k;
    }].pop[] || ''];
  },
  getNameByValue : function[value] {
    var me = this;
    return this.keys[this.self].filter[function[k] {
      return me.self[k] === value;
    }].pop[] || null;
  }
};

var MyMessageIds = new Enum[{
    UndefinedId : 0,
    FilenameId : 1,
    BuildFileId : 2,
    MovementArgsId : 3,
    MoveId : 4,
    ExecuteCommandId : 5
}];

document.body.innerHTML = '
' + JSON.stringify[{
  'Enum Keys' : MyMessageIds.keys[],
  'Enum Vals' : MyMessageIds.values[],
  'Example' : {
    'MoveId' : MyMessageIds.getValueByName['MoveId'],
    'Val[3]' : MyMessageIds.getNameByValue[3]
  }
}, null, 4] + '
';
1,
function Enum[] {
  this.self = arguments[0];
}
Enum.prototype = {
  keys : function[] {
    return Object.keys[this.self];
  },
  values : function[] {
    var me = this;
    return this.keys[this.self].map[function[key] {
      return me.self[key];
    }];
  },
  getValueByName : function[key] {
    return this.self[this.keys[this.self].filter[function[k] {
      return key === k;
    }].pop[] || ''];
  },
  getNameByValue : function[value] {
    var me = this;
    return this.keys[this.self].filter[function[k] {
      return me.self[k] === value;
    }].pop[] || null;
  }
};

var MyMessageIds = new Enum[{
    UndefinedId : 0,
    FilenameId : 1,
    BuildFileId : 2,
    MovementArgsId : 3,
    MoveId : 4,
    ExecuteCommandId : 5
}];

document.body.innerHTML = '
' + JSON.stringify[{
  'Enum Keys' : MyMessageIds.keys[],
  'Enum Vals' : MyMessageIds.values[],
  'Example' : {
    'MoveId' : MyMessageIds.getValueByName['MoveId'],
    'Val[3]' : MyMessageIds.getNameByValue[3]
  }
}, null, 4] + '
';
2 có
function Enum[] {
  this.self = arguments[0];
}
Enum.prototype = {
  keys : function[] {
    return Object.keys[this.self];
  },
  values : function[] {
    var me = this;
    return this.keys[this.self].map[function[key] {
      return me.self[key];
    }];
  },
  getValueByName : function[key] {
    return this.self[this.keys[this.self].filter[function[k] {
      return key === k;
    }].pop[] || ''];
  },
  getNameByValue : function[value] {
    var me = this;
    return this.keys[this.self].filter[function[k] {
      return me.self[k] === value;
    }].pop[] || null;
  }
};

var MyMessageIds = new Enum[{
    UndefinedId : 0,
    FilenameId : 1,
    BuildFileId : 2,
    MovementArgsId : 3,
    MoveId : 4,
    ExecuteCommandId : 5
}];

document.body.innerHTML = '
' + JSON.stringify[{
  'Enum Keys' : MyMessageIds.keys[],
  'Enum Vals' : MyMessageIds.values[],
  'Example' : {
    'MoveId' : MyMessageIds.getValueByName['MoveId'],
    'Val[3]' : MyMessageIds.getNameByValue[3]
  }
}, null, 4] + '
';
3 và
function Enum[] {
  this.self = arguments[0];
}
Enum.prototype = {
  keys : function[] {
    return Object.keys[this.self];
  },
  values : function[] {
    var me = this;
    return this.keys[this.self].map[function[key] {
      return me.self[key];
    }];
  },
  getValueByName : function[key] {
    return this.self[this.keys[this.self].filter[function[k] {
      return key === k;
    }].pop[] || ''];
  },
  getNameByValue : function[value] {
    var me = this;
    return this.keys[this.self].filter[function[k] {
      return me.self[k] === value;
    }].pop[] || null;
  }
};

var MyMessageIds = new Enum[{
    UndefinedId : 0,
    FilenameId : 1,
    BuildFileId : 2,
    MovementArgsId : 3,
    MoveId : 4,
    ExecuteCommandId : 5
}];

document.body.innerHTML = '
' + JSON.stringify[{
  'Enum Keys' : MyMessageIds.keys[],
  'Enum Vals' : MyMessageIds.values[],
  'Example' : {
    'MoveId' : MyMessageIds.getValueByName['MoveId'],
    'Val[3]' : MyMessageIds.getNameByValue[3]
  }
}, null, 4] + '
';
4 có
function Enum[] {
  this.self = arguments[0];
}
Enum.prototype = {
  keys : function[] {
    return Object.keys[this.self];
  },
  values : function[] {
    var me = this;
    return this.keys[this.self].map[function[key] {
      return me.self[key];
    }];
  },
  getValueByName : function[key] {
    return this.self[this.keys[this.self].filter[function[k] {
      return key === k;
    }].pop[] || ''];
  },
  getNameByValue : function[value] {
    var me = this;
    return this.keys[this.self].filter[function[k] {
      return me.self[k] === value;
    }].pop[] || null;
  }
};

var MyMessageIds = new Enum[{
    UndefinedId : 0,
    FilenameId : 1,
    BuildFileId : 2,
    MovementArgsId : 3,
    MoveId : 4,
    ExecuteCommandId : 5
}];

document.body.innerHTML = '
' + JSON.stringify[{
  'Enum Keys' : MyMessageIds.keys[],
  'Enum Vals' : MyMessageIds.values[],
  'Example' : {
    'MoveId' : MyMessageIds.getValueByName['MoveId'],
    'Val[3]' : MyMessageIds.getNameByValue[3]
  }
}, null, 4] + '
';
5.

Nếu chúng tôi muốn, chúng tôi có thể bỏ hoàn toàn các bộ khởi tạo:

ts

enum Direction {

Up,

Down,

Left,

Right,

}

Try

Ở đây,

var MyMessageIds = {
    UndefinedId : 0,
    FilenameId : 1,
    BuildFileId : 2,
    MovementArgsId : 3,
    MoveId : 4,
    ExecuteCommandId : 5
}

function getEnumKeys[enumType] {
  return Object.keys[MyMessageIds];
}

function getEnumValues[enumType] {
  return getEnumKeys[enumType].map[function[key] {
    return enumType[key];
  }];
}

function getEnumValue[enumType, key] {
  return enumType[getEnumKeys[enumType].filter[function[k] {
    return key === k;
  }].pop[] || ''];
}

document.body.innerHTML = '
' + JSON.stringify[{
  'Enum Keys' : getEnumKeys[MyMessageIds],
  'Enum Vals' : getEnumValues[MyMessageIds],
  'Example' : {
    'MoveId' : getEnumValue[MyMessageIds, 'MoveId']
  }
}, null, 4] + '
';
6 sẽ có giá trị
function Enum[] {
  this.self = arguments[0];
}
Enum.prototype = {
  keys : function[] {
    return Object.keys[this.self];
  },
  values : function[] {
    var me = this;
    return this.keys[this.self].map[function[key] {
      return me.self[key];
    }];
  },
  getValueByName : function[key] {
    return this.self[this.keys[this.self].filter[function[k] {
      return key === k;
    }].pop[] || ''];
  },
  getNameByValue : function[value] {
    var me = this;
    return this.keys[this.self].filter[function[k] {
      return me.self[k] === value;
    }].pop[] || null;
  }
};

var MyMessageIds = new Enum[{
    UndefinedId : 0,
    FilenameId : 1,
    BuildFileId : 2,
    MovementArgsId : 3,
    MoveId : 4,
    ExecuteCommandId : 5
}];

document.body.innerHTML = '
' + JSON.stringify[{
  'Enum Keys' : MyMessageIds.keys[],
  'Enum Vals' : MyMessageIds.values[],
  'Example' : {
    'MoveId' : MyMessageIds.getValueByName['MoveId'],
    'Val[3]' : MyMessageIds.getNameByValue[3]
  }
}, null, 4] + '
';
7,
function Enum[] {
  this.self = arguments[0];
}
Enum.prototype = {
  keys : function[] {
    return Object.keys[this.self];
  },
  values : function[] {
    var me = this;
    return this.keys[this.self].map[function[key] {
      return me.self[key];
    }];
  },
  getValueByName : function[key] {
    return this.self[this.keys[this.self].filter[function[k] {
      return key === k;
    }].pop[] || ''];
  },
  getNameByValue : function[value] {
    var me = this;
    return this.keys[this.self].filter[function[k] {
      return me.self[k] === value;
    }].pop[] || null;
  }
};

var MyMessageIds = new Enum[{
    UndefinedId : 0,
    FilenameId : 1,
    BuildFileId : 2,
    MovementArgsId : 3,
    MoveId : 4,
    ExecuteCommandId : 5
}];

document.body.innerHTML = '
' + JSON.stringify[{
  'Enum Keys' : MyMessageIds.keys[],
  'Enum Vals' : MyMessageIds.values[],
  'Example' : {
    'MoveId' : MyMessageIds.getValueByName['MoveId'],
    'Val[3]' : MyMessageIds.getNameByValue[3]
  }
}, null, 4] + '
';
0 sẽ có
var MyMessageIds = {
    UndefinedId : 0,
    FilenameId : 1,
    BuildFileId : 2,
    MovementArgsId : 3,
    MoveId : 4,
    ExecuteCommandId : 5
}

function getEnumKeys[enumType] {
  return Object.keys[MyMessageIds];
}

function getEnumValues[enumType] {
  return getEnumKeys[enumType].map[function[key] {
    return enumType[key];
  }];
}

function getEnumValue[enumType, key] {
  return enumType[getEnumKeys[enumType].filter[function[k] {
    return key === k;
  }].pop[] || ''];
}

document.body.innerHTML = '
' + JSON.stringify[{
  'Enum Keys' : getEnumKeys[MyMessageIds],
  'Enum Vals' : getEnumValues[MyMessageIds],
  'Example' : {
    'MoveId' : getEnumValue[MyMessageIds, 'MoveId']
  }
}, null, 4] + '
';
7, v.v. enum.

Sử dụng enum rất đơn giản: Chỉ cần truy cập bất kỳ thành viên nào làm thuộc tính của chính Enum và khai báo các loại bằng tên của Enum:

ts

enum UserResponse {

No = 0,

Yes = 1,

}

function respond[recipient: string, message: UserResponse]: void {

// ...

}

respond["Princess Caroline", UserResponse.Yes];

Try

Các enum số có thể được trộn trong các thành viên được tính toán và không đổi [xem bên dưới]. Truyện ngắn là, các enum mà không cần khởi tạo hoặc cần phải là người đầu tiên hoặc phải đến sau khi các enum số được khởi tạo với các hằng số số hoặc các thành viên enum không đổi khác. Nói cách khác, những điều sau đây được cho phép:

ts

enum E {

A = getSomeValue[],

B,

Enum member must have initializer.1061Enum member must have initializer.

}

Try

Chuỗi enums

Các enum chuỗi là một khái niệm tương tự, nhưng có một số khác biệt thời gian chạy tinh tế như được ghi lại dưới đây. Trong một chuỗi enum, mỗi thành viên phải được khởi tạo không đổi với một chuỗi theo nghĩa đen hoặc với một thành viên enum chuỗi khác.

ts

enum Direction {

Up = "UP",

Down = "DOWN",

Left = "LEFT",

Right = "RIGHT",

}

Try

Trong khi các enum chuỗi don don có hành vi tự động nâng cấp, các enum chuỗi có lợi ích mà họ đã tuần tự hóa tốt. Nói cách khác, nếu bạn đang gỡ lỗi và phải đọc giá trị thời gian chạy của một enum số, giá trị thường mờ đục - nó không tự nó truyền đạt bất kỳ ý nghĩa hữu ích nào [mặc dù ánh xạ ngược thường có thể giúp ích]. Các enum chuỗi cho phép bạn đưa ra một giá trị có ý nghĩa và có thể đọc được khi mã của bạn chạy, độc lập với tên của chính thành viên enum.

Enums không đồng nhất

Các enum về mặt kỹ thuật có thể được trộn lẫn với các thành viên chuỗi và số, nhưng nó không rõ lý do tại sao bạn muốn làm như vậy:

ts

enum BooleanLikeHeterogeneousEnum {

No = 0,

Yes = "YES",

}

Try

Trừ khi bạn thực sự cố gắng tận dụng hành vi thời gian chạy của JavaScript, một cách thông minh, thì bạn khuyên bạn nên làm điều này.

Thành viên được tính toán và liên tục

Mỗi thành viên enum có một giá trị liên quan đến nó có thể là hằng số hoặc được tính toán. Một thành viên enum được coi là không đổi nếu:

  • Đây là thành viên đầu tiên trong enum và nó không có trình khởi tạo, trong trường hợp đó, nó đã gán giá trị

    function Enum[] {
      this.self = arguments[0];
    }
    Enum.prototype = {
      keys : function[] {
        return Object.keys[this.self];
      },
      values : function[] {
        var me = this;
        return this.keys[this.self].map[function[key] {
          return me.self[key];
        }];
      },
      getValueByName : function[key] {
        return this.self[this.keys[this.self].filter[function[k] {
          return key === k;
        }].pop[] || ''];
      },
      getNameByValue : function[value] {
        var me = this;
        return this.keys[this.self].filter[function[k] {
          return me.self[k] === value;
        }].pop[] || null;
      }
    };
    
    var MyMessageIds = new Enum[{
        UndefinedId : 0,
        FilenameId : 1,
        BuildFileId : 2,
        MovementArgsId : 3,
        MoveId : 4,
        ExecuteCommandId : 5
    }];
    
    document.body.innerHTML = '
    ' + JSON.stringify[{
      'Enum Keys' : MyMessageIds.keys[],
      'Enum Vals' : MyMessageIds.values[],
      'Example' : {
        'MoveId' : MyMessageIds.getValueByName['MoveId'],
        'Val[3]' : MyMessageIds.getNameByValue[3]
      }
    }, null, 4] + '
    ';
    7:

    var MyMessageIds = {
        UndefinedId : 0,
        FilenameId : 1,
        BuildFileId : 2,
        MovementArgsId : 3,
        MoveId : 4,
        ExecuteCommandId : 5
    };
    
    function getValue[key] {
        return MyMessageIds[key];
    }
    
    0
  • Nó không có bộ khởi tạo và thành viên enum trước đó là một hằng số số. Trong trường hợp này, giá trị của thành viên enum hiện tại sẽ là giá trị của thành viên enum trước đó cộng với một thành viên.

    var MyMessageIds = {
        UndefinedId : 0,
        FilenameId : 1,
        BuildFileId : 2,
        MovementArgsId : 3,
        MoveId : 4,
        ExecuteCommandId : 5
    };
    
    function getValue[key] {
        return MyMessageIds[key];
    }
    
    1
  • Thành viên enum được khởi tạo với biểu thức enum không đổi. Biểu thức enum không đổi là một tập hợp các biểu thức TypeScript có thể được đánh giá đầy đủ tại thời điểm biên dịch. Một biểu thức là một biểu thức enum không đổi nếu đó là:

    1. một biểu thức enum theo nghĩa đen [về cơ bản là một chuỗi chữ hoặc chữ số]
    2. tham chiếu đến thành viên enum hằng số được xác định trước đó [có thể bắt nguồn từ một enum khác]
    3. một biểu hiện không đổi trong dấu ngoặc đơn
    4. Một trong các toán tử

      ts

      enum Direction {

      Up = 1,

      Down,

      Left,

      Right,

      }

      Try

      1,

      ts

      enum Direction {

      Up = 1,

      Down,

      Left,

      Right,

      }

      Try

      2,

      ts

      enum Direction {

      Up = 1,

      Down,

      Left,

      Right,

      }

      Try

      3 được áp dụng cho biểu thức enum không đổi
    5. ts

      enum Direction {

      Up = 1,

      Down,

      Left,

      Right,

      }

      Try

      1,

      ts

      enum Direction {

      Up = 1,

      Down,

      Left,

      Right,

      }

      Try

      2,

      ts

      enum Direction {

      Up = 1,

      Down,

      Left,

      Right,

      }

      Try

      6,

      ts

      enum Direction {

      Up = 1,

      Down,

      Left,

      Right,

      }

      Try

      7,

      ts

      enum Direction {

      Up = 1,

      Down,

      Left,

      Right,

      }

      Try

      8,

      ts

      enum Direction {

      Up = 1,

      Down,

      Left,

      Right,

      }

      Try

      9,

      ts

      enum Direction {

      Up,

      Down,

      Left,

      Right,

      }

      Try

      0,

      ts

      enum Direction {

      Up,

      Down,

      Left,

      Right,

      }

      Try

      1,

      ts

      enum Direction {

      Up,

      Down,

      Left,

      Right,

      }

      Try

      2,

      ts

      enum Direction {

      Up,

      Down,

      Left,

      Right,

      }

      Try

      3, ______54

    Đó là một lỗi thời gian biên dịch cho các biểu thức enum không đổi được đánh giá thành

    ts

    enum Direction {

    Up,

    Down,

    Left,

    Right,

    }

    Try

    5 hoặc

    ts

    enum Direction {

    Up,

    Down,

    Left,

    Right,

    }

    Try

    6.

Trong tất cả các trường hợp khác, thành viên enum được coi là tính toán.

var MyMessageIds = {
    UndefinedId : 0,
    FilenameId : 1,
    BuildFileId : 2,
    MovementArgsId : 3,
    MoveId : 4,
    ExecuteCommandId : 5
};

function getValue[key] {
    return MyMessageIds[key];
}
2

Liên minh enum và các loại thành viên enum

Có một tập hợp con đặc biệt của các thành viên enum liên tục mà aren tính toán: các thành viên enum theo nghĩa đen. Thành viên enum theo nghĩa đen là thành viên enum không đổi không có giá trị khởi tạo hoặc với các giá trị được khởi tạo thành

  • Bất kỳ chuỗi nào theo nghĩa đen [ví dụ:

    ts

    enum Direction {

    Up,

    Down,

    Left,

    Right,

    }

    Try

    7,

    ts

    enum Direction {

    Up,

    Down,

    Left,

    Right,

    }

    Try

    8,

    ts

    enum Direction {

    Up,

    Down,

    Left,

    Right,

    }

    Try

    9]
  • Bất kỳ chữ số nào [ví dụ:
    var MyMessageIds = {
        UndefinedId : 0,
        FilenameId : 1,
        BuildFileId : 2,
        MovementArgsId : 3,
        MoveId : 4,
        ExecuteCommandId : 5
    }
    
    function getEnumKeys[enumType] {
      return Object.keys[MyMessageIds];
    }
    
    function getEnumValues[enumType] {
      return getEnumKeys[enumType].map[function[key] {
        return enumType[key];
      }];
    }
    
    function getEnumValue[enumType, key] {
      return enumType[getEnumKeys[enumType].filter[function[k] {
        return key === k;
      }].pop[] || ''];
    }
    
    document.body.innerHTML = '
    ' + JSON.stringify[{
      'Enum Keys' : getEnumKeys[MyMessageIds],
      'Enum Vals' : getEnumValues[MyMessageIds],
      'Example' : {
        'MoveId' : getEnumValue[MyMessageIds, 'MoveId']
      }
    }, null, 4] + '
    ';
    7,

    ts

    enum UserResponse {

    No = 0,

    Yes = 1,

    }

    function respond[recipient: string, message: UserResponse]: void {

    // ...

    }

    respond["Princess Caroline", UserResponse.Yes];

    Try

    1]
  • Một điểm trừ đơn giản áp dụng cho bất kỳ chữ số nào [ví dụ:

    ts

    enum UserResponse {

    No = 0,

    Yes = 1,

    }

    function respond[recipient: string, message: UserResponse]: void {

    // ...

    }

    respond["Princess Caroline", UserResponse.Yes];

    Try

    2,

    ts

    enum UserResponse {

    No = 0,

    Yes = 1,

    }

    function respond[recipient: string, message: UserResponse]: void {

    // ...

    }

    respond["Princess Caroline", UserResponse.Yes];

    Try

    3]

Khi tất cả các thành viên trong một enum có các giá trị enum theo nghĩa đen, một số ngữ nghĩa đặc biệt xuất hiện.

Đầu tiên là các thành viên Enum cũng trở thành loại! Ví dụ: chúng ta có thể nói rằng một số thành viên nhất định chỉ có thể có giá trị của một thành viên enum:

var MyMessageIds = {
    UndefinedId : 0,
    FilenameId : 1,
    BuildFileId : 2,
    MovementArgsId : 3,
    MoveId : 4,
    ExecuteCommandId : 5
};

function getValue[key] {
    return MyMessageIds[key];
}
3

Thay đổi khác là bản thân các loại enum có hiệu quả trở thành một liên minh của mỗi thành viên enum. Với các enum của công đoàn, hệ thống loại có thể tận dụng thực tế là nó biết chính xác các giá trị tồn tại trong chính Enum. Do đó, TypeScript có thể bắt các lỗi nơi chúng ta có thể so sánh các giá trị không chính xác. Ví dụ:

var MyMessageIds = {
    UndefinedId : 0,
    FilenameId : 1,
    BuildFileId : 2,
    MovementArgsId : 3,
    MoveId : 4,
    ExecuteCommandId : 5
};

function getValue[key] {
    return MyMessageIds[key];
}
4

Trong ví dụ đó, trước tiên chúng tôi đã kiểm tra xem

ts

enum UserResponse {

No = 0,

Yes = 1,

}

function respond[recipient: string, message: UserResponse]: void {

// ...

}

respond["Princess Caroline", UserResponse.Yes];

Try

4 không phải là

ts

enum UserResponse {

No = 0,

Yes = 1,

}

function respond[recipient: string, message: UserResponse]: void {

// ...

}

respond["Princess Caroline", UserResponse.Yes];

Try

5. Nếu kiểm tra đó thành công, thì

ts

enum UserResponse {

No = 0,

Yes = 1,

}

function respond[recipient: string, message: UserResponse]: void {

// ...

}

respond["Princess Caroline", UserResponse.Yes];

Try

6 của chúng tôi sẽ ngắn mạch và thân máy của ‘nếu có thể chạy. Tuy nhiên, nếu séc không thành công, thì

ts

enum UserResponse {

No = 0,

Yes = 1,

}

function respond[recipient: string, message: UserResponse]: void {

// ...

}

respond["Princess Caroline", UserResponse.Yes];

Try

4 chỉ có thể là

ts

enum UserResponse {

No = 0,

Yes = 1,

}

function respond[recipient: string, message: UserResponse]: void {

// ...

}

respond["Princess Caroline", UserResponse.Yes];

Try

5, do đó, nó không có ý nghĩa gì để xem liệu nó có bằng

ts

enum UserResponse {

No = 0,

Yes = 1,

}

function respond[recipient: string, message: UserResponse]: void {

// ...

}

respond["Princess Caroline", UserResponse.Yes];

Try

9 hay không.

Enums khi chạy

Enums là các đối tượng thực sự tồn tại trong thời gian chạy. Ví dụ: enum sau đây

var MyMessageIds = {
    UndefinedId : 0,
    FilenameId : 1,
    BuildFileId : 2,
    MovementArgsId : 3,
    MoveId : 4,
    ExecuteCommandId : 5
};

function getValue[key] {
    return MyMessageIds[key];
}
5

thực sự có thể được truyền lại cho các chức năng

var MyMessageIds = {
    UndefinedId : 0,
    FilenameId : 1,
    BuildFileId : 2,
    MovementArgsId : 3,
    MoveId : 4,
    ExecuteCommandId : 5
};

function getValue[key] {
    return MyMessageIds[key];
}
6

Enums tại thời điểm biên dịch

Mặc dù các enum là các đối tượng thực sự tồn tại trong thời gian chạy, từ khóa ____70 hoạt động khác với bạn có thể mong đợi cho các đối tượng điển hình. Thay vào đó, hãy sử dụng

ts

enum E {

A = getSomeValue[],

B,

Enum member must have initializer.1061Enum member must have initializer.

}

Try

1 để có được một loại đại diện cho tất cả các khóa Enum dưới dạng chuỗi.

var MyMessageIds = {
    UndefinedId : 0,
    FilenameId : 1,
    BuildFileId : 2,
    MovementArgsId : 3,
    MoveId : 4,
    ExecuteCommandId : 5
};

function getValue[key] {
    return MyMessageIds[key];
}
7

Ánh xạ ngược

Ngoài việc tạo một đối tượng có tên thuộc tính cho các thành viên, các thành viên enum số cũng nhận được ánh xạ ngược từ các giá trị enum sang tên enum. Ví dụ, trong ví dụ này:

var MyMessageIds = {
    UndefinedId : 0,
    FilenameId : 1,
    BuildFileId : 2,
    MovementArgsId : 3,
    MoveId : 4,
    ExecuteCommandId : 5
};

function getValue[key] {
    return MyMessageIds[key];
}
8

TypeScript biên dịch điều này xuống JavaScript sau:

var MyMessageIds = {
    UndefinedId : 0,
    FilenameId : 1,
    BuildFileId : 2,
    MovementArgsId : 3,
    MoveId : 4,
    ExecuteCommandId : 5
};

function getValue[key] {
    return MyMessageIds[key];
}
9

Trong mã được tạo này, một enum được biên dịch thành một đối tượng lưu trữ cả hai ánh xạ [

ts

enum E {

A = getSomeValue[],

B,

Enum member must have initializer.1061Enum member must have initializer.

}

Try

2 ->

ts

enum E {

A = getSomeValue[],

B,

Enum member must have initializer.1061Enum member must have initializer.

}

Try

3] và ngược [

ts

enum E {

A = getSomeValue[],

B,

Enum member must have initializer.1061Enum member must have initializer.

}

Try

3 ->

ts

enum E {

A = getSomeValue[],

B,

Enum member must have initializer.1061Enum member must have initializer.

}

Try

2]. Các tài liệu tham khảo cho các thành viên ENUM khác luôn được phát ra dưới dạng quyền truy cập tài sản và không bao giờ được đưa vào.

Hãy nhớ rằng các thành viên chuỗi enum không nhận được ánh xạ ngược được tạo ra.

ts

enum E {

A = getSomeValue[],

B,

Enum member must have initializer.1061Enum member must have initializer.

}

Try

6 Enums

Trong hầu hết các trường hợp, Enums là một giải pháp hoàn toàn hợp lệ. Tuy nhiên, đôi khi các yêu cầu chặt chẽ hơn. Để tránh thanh toán chi phí của mã được tạo thêm và Indirection bổ sung khi truy cập các giá trị Enum, bạn có thể sử dụng

ts

enum E {

A = getSomeValue[],

B,

Enum member must have initializer.1061Enum member must have initializer.

}

Try

6 Enums. Các enum const được xác định bằng cách sử dụng công cụ sửa đổi

ts

enum E {

A = getSomeValue[],

B,

Enum member must have initializer.1061Enum member must have initializer.

}

Try

6 trên enum của chúng tôi:

var MyMessageIds = {
    UndefinedId : 0,
    FilenameId : 1,
    BuildFileId : 2,
    MovementArgsId : 3,
    MoveId : 4,
    ExecuteCommandId : 5
}

function getEnumKeys[enumType] {
  return Object.keys[MyMessageIds];
}

function getEnumValues[enumType] {
  return getEnumKeys[enumType].map[function[key] {
    return enumType[key];
  }];
}

function getEnumValue[enumType, key] {
  return enumType[getEnumKeys[enumType].filter[function[k] {
    return key === k;
  }].pop[] || ''];
}

document.body.innerHTML = '
' + JSON.stringify[{
  'Enum Keys' : getEnumKeys[MyMessageIds],
  'Enum Vals' : getEnumValues[MyMessageIds],
  'Example' : {
    'MoveId' : getEnumValue[MyMessageIds, 'MoveId']
  }
}, null, 4] + '
';
0

Const enum chỉ có thể sử dụng các biểu thức enum không đổi và không giống như các enum thông thường, chúng hoàn toàn bị loại bỏ trong quá trình biên dịch. Các thành viên Const Enum được đưa vào các trang web sử dụng. Điều này là có thể vì các enum const không thể tính toán thành viên.

var MyMessageIds = {
    UndefinedId : 0,
    FilenameId : 1,
    BuildFileId : 2,
    MovementArgsId : 3,
    MoveId : 4,
    ExecuteCommandId : 5
}

function getEnumKeys[enumType] {
  return Object.keys[MyMessageIds];
}

function getEnumValues[enumType] {
  return getEnumKeys[enumType].map[function[key] {
    return enumType[key];
  }];
}

function getEnumValue[enumType, key] {
  return enumType[getEnumKeys[enumType].filter[function[k] {
    return key === k;
  }].pop[] || ''];
}

document.body.innerHTML = '
' + JSON.stringify[{
  'Enum Keys' : getEnumKeys[MyMessageIds],
  'Enum Vals' : getEnumValues[MyMessageIds],
  'Example' : {
    'MoveId' : getEnumValue[MyMessageIds, 'MoveId']
  }
}, null, 4] + '
';
1

Trong mã được tạo sẽ trở thành

var MyMessageIds = {
    UndefinedId : 0,
    FilenameId : 1,
    BuildFileId : 2,
    MovementArgsId : 3,
    MoveId : 4,
    ExecuteCommandId : 5
}

function getEnumKeys[enumType] {
  return Object.keys[MyMessageIds];
}

function getEnumValues[enumType] {
  return getEnumKeys[enumType].map[function[key] {
    return enumType[key];
  }];
}

function getEnumValue[enumType, key] {
  return enumType[getEnumKeys[enumType].filter[function[k] {
    return key === k;
  }].pop[] || ''];
}

document.body.innerHTML = '
' + JSON.stringify[{
  'Enum Keys' : getEnumKeys[MyMessageIds],
  'Enum Vals' : getEnumValues[MyMessageIds],
  'Example' : {
    'MoveId' : getEnumValue[MyMessageIds, 'MoveId']
  }
}, null, 4] + '
';
2

Const enum cạm bẫy

Các giá trị enum nội tuyến lúc đầu là đơn giản, nhưng đi kèm với ý nghĩa tinh tế. Những cạm bẫy này chỉ liên quan đến các enum const xung quanh [về cơ bản là các tệp trong các tệp

ts

enum E {

A = getSomeValue[],

B,

Enum member must have initializer.1061Enum member must have initializer.

}

Try

9] và chia sẻ chúng giữa các dự án, nhưng nếu bạn đang xuất bản hoặc tiêu thụ các tệp ____79, những cạm bẫy này có thể áp dụng cho bạn, vì

ts

enum Direction {

Up = "UP",

Down = "DOWN",

Left = "LEFT",

Right = "RIGHT",

}

Try

1 chuyển đổi các tệp

ts

enum Direction {

Up = "UP",

Down = "DOWN",

Left = "LEFT",

Right = "RIGHT",

}

Try

2 vào các tệp

ts

enum E {

A = getSomeValue[],

B,

Enum member must have initializer.1061Enum member must have initializer.

}

Try

9.

  1. Vì những lý do được trình bày trong tài liệu

    ts

    enum Direction {

    Up = "UP",

    Down = "DOWN",

    Left = "LEFT",

    Right = "RIGHT",

    }

    Try

    4, chế độ đó về cơ bản không tương thích với các enum const xung quanh. Điều này có nghĩa là nếu bạn xuất bản các enum const xung quanh, người tiêu dùng hạ nguồn sẽ không thể sử dụng

    ts

    enum Direction {

    Up = "UP",

    Down = "DOWN",

    Left = "LEFT",

    Right = "RIGHT",

    }

    Try

    4 và các giá trị enum đó cùng một lúc.
  2. Bạn có thể dễ dàng nội tuyến các giá trị từ phiên bản A của một phụ thuộc vào thời điểm biên dịch và nhập phiên bản B khi chạy. Phiên bản A và B, các enum có thể có các giá trị khác nhau, nếu bạn không cẩn thận lắm, dẫn đến các lỗi đáng ngạc nhiên, như lấy các nhánh sai của các câu lệnh

    ts

    enum Direction {

    Up = "UP",

    Down = "DOWN",

    Left = "LEFT",

    Right = "RIGHT",

    }

    Try

    6. Những lỗi này đặc biệt nguy hiểm vì thông thường việc chạy các thử nghiệm tự động cùng lúc với các dự án được xây dựng, với cùng một phiên bản phụ thuộc, bỏ lỡ các lỗi này hoàn toàn.
  3. ts

    enum Direction {

    Up = "UP",

    Down = "DOWN",

    Left = "LEFT",

    Right = "RIGHT",

    }

    Try

    7 sẽ không thực hiện nhập khẩu cho các enum const được sử dụng làm giá trị, nhưng các enum const xung quanh không đảm bảo rằng thời gian chạy

    ts

    enum Direction {

    Up = "UP",

    Down = "DOWN",

    Left = "LEFT",

    Right = "RIGHT",

    }

    Try

    8 tồn tại các tệp. Nhập khẩu không thể giải quyết được gây ra lỗi khi chạy. Cách thông thường để thực hiện nhập khẩu rõ ràng, nhập khẩu chỉ loại, hiện không cho phép các giá trị enum của const.

Dưới đây là hai cách tiếp cận để tránh những cạm bẫy này:

A. Không sử dụng enum const. Bạn có thể dễ dàng cấm các const enums với sự trợ giúp của một linter. Rõ ràng điều này tránh mọi vấn đề với enums const, nhưng ngăn dự án của bạn nội tuyến của chính nó. Không giống như các enum nội tuyến từ các dự án khác, việc nội tuyến của một dự án riêng của dự án không có vấn đề gì và có ý nghĩa về hiệu suất. B. Không xuất bản các enum const xung quanh, bằng cách giải mã chúng với sự trợ giúp của

ts

enum Direction {

Up = "UP",

Down = "DOWN",

Left = "LEFT",

Right = "RIGHT",

}

Try

9. Đây là cách tiếp cận được thực hiện trong nội bộ bởi chính dự án TypeScript.

ts

enum Direction {

Up = "UP",

Down = "DOWN",

Left = "LEFT",

Right = "RIGHT",

}

Try

9 phát ra cùng một JavaScript cho các enum const như các enum đơn giản. Sau đó, bạn có thể loại bỏ một cách an toàn công cụ sửa đổi

ts

enum E {

A = getSomeValue[],

B,

Enum member must have initializer.1061Enum member must have initializer.

}

Try

6 từ các tệp

ts

enum E {

A = getSomeValue[],

B,

Enum member must have initializer.1061Enum member must have initializer.

}

Try

9 trong một bước xây dựng.

Theo cách này, người tiêu dùng hạ nguồn sẽ không liên kết với dự án của bạn, tránh những cạm bẫy ở trên, nhưng một dự án vẫn có thể in tuyến chính của mình, không giống như cấm hoàn toàn const.

Enums xung quanh

Các enum xung quanh được sử dụng để mô tả hình dạng của các loại enum đã có.

var MyMessageIds = {
    UndefinedId : 0,
    FilenameId : 1,
    BuildFileId : 2,
    MovementArgsId : 3,
    MoveId : 4,
    ExecuteCommandId : 5
}

function getEnumKeys[enumType] {
  return Object.keys[MyMessageIds];
}

function getEnumValues[enumType] {
  return getEnumKeys[enumType].map[function[key] {
    return enumType[key];
  }];
}

function getEnumValue[enumType, key] {
  return enumType[getEnumKeys[enumType].filter[function[k] {
    return key === k;
  }].pop[] || ''];
}

document.body.innerHTML = '
' + JSON.stringify[{
  'Enum Keys' : getEnumKeys[MyMessageIds],
  'Enum Vals' : getEnumValues[MyMessageIds],
  'Example' : {
    'MoveId' : getEnumValue[MyMessageIds, 'MoveId']
  }
}, null, 4] + '
';
3

Một sự khác biệt quan trọng giữa các enum môi trường xung quanh và không mơ hồ là, trong các enum thường xuyên, các thành viên không có bộ khởi tạo sẽ được coi là không đổi nếu thành viên enum trước đó được coi là không đổi. Ngược lại, một thành viên enum môi trường xung quanh [và không phải là trước] không có trình khởi tạo luôn được coi là tính toán.

Đối tượng vs Enums

Trong TypeScript hiện đại, bạn có thể không cần một enum khi một đối tượng có

ts

enum BooleanLikeHeterogeneousEnum {

No = 0,

Yes = "YES",

}

Try

3 có thể đủ:

var MyMessageIds = {
    UndefinedId : 0,
    FilenameId : 1,
    BuildFileId : 2,
    MovementArgsId : 3,
    MoveId : 4,
    ExecuteCommandId : 5
}

function getEnumKeys[enumType] {
  return Object.keys[MyMessageIds];
}

function getEnumValues[enumType] {
  return getEnumKeys[enumType].map[function[key] {
    return enumType[key];
  }];
}

function getEnumValue[enumType, key] {
  return enumType[getEnumKeys[enumType].filter[function[k] {
    return key === k;
  }].pop[] || ''];
}

document.body.innerHTML = '
' + JSON.stringify[{
  'Enum Keys' : getEnumKeys[MyMessageIds],
  'Enum Vals' : getEnumValues[MyMessageIds],
  'Example' : {
    'MoveId' : getEnumValue[MyMessageIds, 'MoveId']
  }
}, null, 4] + '
';
4

Đối số lớn nhất có lợi cho định dạng này so với TypeScript,

var MyMessageIds = {
    UndefinedId : 0,
    FilenameId : 1,
    BuildFileId : 2,
    MovementArgsId : 3,
    MoveId : 4,
    ExecuteCommandId : 5
}

function getEnumKeys[enumType] {
  return Object.keys[MyMessageIds];
}

function getEnumValues[enumType] {
  return getEnumKeys[enumType].map[function[key] {
    return enumType[key];
  }];
}

function getEnumValue[enumType, key] {
  return enumType[getEnumKeys[enumType].filter[function[k] {
    return key === k;
  }].pop[] || ''];
}

document.body.innerHTML = '
' + JSON.stringify[{
  'Enum Keys' : getEnumKeys[MyMessageIds],
  'Enum Vals' : getEnumValues[MyMessageIds],
  'Example' : {
    'MoveId' : getEnumValue[MyMessageIds, 'MoveId']
  }
}, null, 4] + '
';
5 là nó giữ cho cơ sở mã của bạn phù hợp với trạng thái của JavaScript và khi/nếu được thêm vào JavaScript thì bạn có thể chuyển sang cú pháp bổ sung.

Tôi có thể sử dụng enum trong javascript không?

Các loại được liệt kê hoặc các loại được liệt kê là các loại dữ liệu đặc biệt đặt các biến thành một tập hợp các hằng số được xác định trước. Trong các ngôn ngữ khác các loại dữ liệu được liệt kê được cung cấp để sử dụng trong ứng dụng này. JavaScript không có các loại enum trực tiếp trong đó, nhưng chúng tôi có thể thực hiện các loại tương tự như Enums thông qua JavaScript.Javascript does not have enum types directly in it, but we can implement similar types like enums through javascript.

Giá trị enum là gì?

Phương thức valueOf [] trả về hằng số enum của enumType được chỉ định với tên được chỉ định.Tên phải khớp chính xác một định danh được sử dụng để khai báo hằng số enum trong loại này.returns the enum constant of the specified enumtype with the specified name. The name must match exactly an identifier used to declare an enum constant in this type.

Enum ts là gì?

Trong các loại bản thảo, enum hoặc các loại được liệt kê, là các cấu trúc dữ liệu có độ dài không đổi chứa một tập hợp các giá trị không đổi.Mỗi giá trị không đổi này được gọi là thành viên của enum.Enums rất hữu ích khi cài đặt các thuộc tính hoặc giá trị chỉ có thể là một số giá trị có thể nhất định.data structures of constant length that hold a set of constant values. Each of these constant values is known as a member of the enum. Enums are useful when setting properties or values that can only be a certain number of possible values.

Có thể được Array không?

Enums là loại giá trị [thường là int32].Giống như bất kỳ giá trị số nguyên nào, bạn có thể truy cập một mảng với các giá trị của chúng.Các giá trị enum được đặt hàng bắt đầu bằng 0, dựa trên thứ tự văn bản của chúng.Messagetype Chúng tôi thấy Messagetype Enum, đây là một loạt các giá trị INT bạn có thể truy cập với các hằng số được kích hoạt mạnh mẽ.you can access an array with their values. Enum values are ordered starting with zero, based on their textual order. MessageType We see the MessageType enum, which is a series of int values you can access with strongly-typed named constants.

Bài Viết Liên Quan

Chủ Đề