在TypeScript中使用ENUM的重点是什么?

时间:2018-01-17 07:41:26

标签: typescript enums

我一直在使用TypeScript挖掘enum,这让我想到了使用它的重点。我不质疑它的价值。只是因为我不熟悉它的使用,并且一直引导我编写代码,例如声明某些对象,这些对象在整个应用程序中使用常量而不使用enum。总结一下,除了使用/声明保留一些常量的手动对象之外,使用它和区别的重点是什么?任何见解都将不胜感激!

2 个答案:

答案 0 :(得分:1)

枚举很方便强制进行类型验证(常量不容易),将可读枚举转换为数字很容易,反之亦然。

enum Access {
  Read = 1,
  Write = 2,
  Execute = 4,
  AnotherAccess = 8
}

当我有一组选择时,我会一直使用它,以明确代码接受的值和代码可读性

if( myAccess == Access[Access[myaccess]] ) // enum used

按位操作是另一回事,例如,我的访问是(Access.Read | Access.Execute)

var myAccess = Access.Read | Access.Execute; //instead of 1 | 4 = 5

// do I have write access?
if ( (myAccess & Access.Write) > 0) { /* yes */ }

// do I have read and execute 
if ( (myAccess & (Access.Read | Access.Execute)) > 0) { /* yes */ }

答案 1 :(得分:0)

在我看来,你的问题不是TypeScript相关的,而是泛型的,为什么人们会使用枚举而不是任何语言的常量。所以只是谷歌,你会发现很多东西。我快速看一下是https://gorbeia.wordpress.com/2015/03/11/java-enums-vs-constants/

如果你问我,枚举只是组织代码的更好方法。

如果您的问题与打字稿相关,请提供一些更详细的信息,与tzpescript相比,enum的内容有所不同。