我一直在enum研究 TypeScript,它让我思考使用它的意义何在。我不是在质疑它的价值。只是我不熟悉它的用法,这导致我编写代码,例如声明某种类型的对象,这些对象在整个应用程序中使用常量而不使用enum. 总而言之,使用它的意义是什么,与仅使用/声明保留一些常量的手动对象有何区别?任何见解将不胜感激!
枚举可以方便地强制进行类型验证(对于常量来说并不容易),并且很容易将可读的枚举转换为数字,反之亦然。
enum Access {
Read = 1,
Write = 2,
Execute = 4,
AnotherAccess = 8
}
Run Code Online (Sandbox Code Playgroud)
当我有一组选择时,我总是使用它,以明确代码接受什么样的值并提高代码可读性
if( myAccess == Access[Access[myaccess]] ) // enum used
Run Code Online (Sandbox Code Playgroud)
位操作是另一回事,例如,我的访问是(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 */ }
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4349 次 |
| 最近记录: |