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