2016-09-07 83 views
7

我正在学习使用this ebook作为参考的TypeScript。我检查了TypeScript Official Documentation,但我没有找到有关枚举标志的信息。什么是TypeScript中的枚举标志?

+1

在你引用的文档中给出的'FileAccess'例子就是一个例子。您参考的电子书中的页面有一个名为“枚举作为标志”的部分,其中描述了您要查找的内容,比下面的答案更详细,包括如何使用“| ='等添加标志。 – 2016-09-07 03:47:19

回答

20

它们是有效存储和表示布尔值集合的一种方法。

例如,服用此标志枚举:

enum Traits { 
    None = 0, 
    Friendly = 1 << 0, // 0001 -- the bitshift is unnecessary, but done for consistency 
    Mean = 1 << 1,  // 0010 
    Funny = 1 << 2, // 0100 
    Boring = 1 << 3, // 1000 
    All = ~(~0 << 4) // 1111 
} 

而是只能够表示,像这样的单一值的:

let traits = Traits.Mean; 

我们可以在一个单一的变量代表多个值:

let traits = Traits.Mean | Traits.Funny; // (0010 | 0100) === 0110 

然后单独测试它们:

if (traits & Traits.Mean) { 
    console.log(":("); 
} 
+0

'let traits = Traits.Mean | Traits.Funny'现在'traits'变量会有多个值,怎么做呢?我将有'6'如何转换为'Traits.Mean | Traits.Funny'? – Sreekumar

0

标志允许您检查一组条件中的某个条件是否为真。这是各种其他编程语言中的常见编程模式,例如这里是一个关于C#的例子:Using Bitwise operators on flags

+2

但问题是关于TypeScript,特别是在枚举上下文中使用标志。 – 2016-09-07 05:15:54