Enums 是一种 TypeScipt 数据类型,允许组织基于数字的独特标识符集。
以下是如何定义一个简单的 enum:
1enum Transport {
2 train,
3 bus,
4 bike,
5 car
6}
7
8let myTransport = Transport.bus;
9console.log(myTransport); // 1
您可以通过其数字值或与其相关的字符串访问 enum 值:
1enum Students {
2 Ann,
3 Bob,
4 John,
5 Zed
6}
7
8console.log(Students['John']); // 2
9
10console.log(Students[3]); // Zed
元素是基于零的,但您可以通过在第一个元素上设置您选择的数值来更改。
1enum Tools {
2 hammer = 1,
3 screwdriver,
4 saw,
5 wrench
6}
7
8console.log(Tools.saw); // 3
或者,您可以跳过到新的值,然后将遵循以下值:
1enum Tools {
2 hammer,
3 screwdriver,
4 saw = 100,
5 wrench
6}
7
8console.log(Tools.wrench); // 101
因此,您可以在不同的文件中添加到单元格,并可以继续添加到同一个单元格:
1enum Sports {
2 Soccer,
3 Football,
4 Basketball,
5}
6
7// ...
8
9// Later or in another file:
10enum Sports {
11 Swimming = 3,
12 Running,
13 Hockey
14}
Enums 成为简单的 JavaScript 对象,以下是上述 Sports enum 结果对象的样子,通过在其上调用 JSON.stringify:
1console.log(JSON.stringify(Sports, null, '\t'));
1{
2 "0": "Soccer",
3 "1": "Football",
4 "2": "Basketball",
5 "3": "Swimming",
6 "4": "Running",
7 "5": "Hockey",
8 "Soccer": 0,
9 "Football": 1,
10 "Basketball": 2,
11 "Swimming": 3,
12 "Running": 4,
13 "Hockey": 5
14}