我正在学习打字脚本,使用this ebook作为参考.我查看了TypeScript Official Documentation,但没有找到有关枚举标志的信息.

推荐答案

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

例如,以下面的标志枚举为例:

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) === Traits.Mean) {
    console.log(":(");
}

Typescript相关问答推荐

为什么当类类型与方法参数类型不兼容时,该函数可以接受类类型

交叉点对数字和布尔的处理方式不同

脉轮ui打字脚本强制执行图标按钮的咏叹调标签-如何关闭

如何在使用`Next—intl`和`next/link`时导航

有条件地删除区分的联合类型中的属性的可选属性

对未到达受保护路由的路由环境做出react

如何在已知基类的任何子类上使用`extends`?

有什么方法可以类型安全地包装import()函数吗?

Angular material 无法显示通过API获取的数据

如何编辑切片器以使用CRUD调用函数?

带投掷的收窄类型

如何连接属性名称和值?

打字脚本中的模块化或命名空间

如何定义这样一个TypeScript泛型,遍历路由配置树并累积路径

类型实例化过深,可能是无限的&TypeScrip中的TupleUnion错误

获取类属性的类型';TypeScript中的getter/setter

类型分布在第一个泛型上,但不分布在第二个泛型上

如何将 MUI 主题对象的自定义属性与情感样式组件中的自定义props 一起使用?

如何在由函数参数推断的记录类型中具有多个对象字段类型

为什么 TypeScript 类型条件会影响其分支的结果?