TS-2 enum

  • enum只用來(lái)聲明數(shù)字就行了,字符串用聯(lián)合類型最好,enum的值不能是對(duì)象類型
  • enum
enum A = {
  todo = 0,
  done, // 1
  deleted // 2
}

let status1 = A.todo
let status2 = 0
  • 用 enum 處理權(quán)限問(wèn)題
enum Permission = {
  None = 0,
  Read = 1 << 0,      // 0001
  Write = 1 << 1,     // 0010
  Delete = 1 << 2,    // 0100
  Manage  = 1 << 3    // 1000
}

type User = {
  permission: Permission
}

const user: User = {
  permission: 0b0101
}

if(CanWrite(user.permission)){
  console.log('有寫權(quán)限')
}
if(CanManage(user.permission)){
  console.log('有管理權(quán)限')
}
function CanWrite(p:Permission){
  return (p & Permission.Write) === Permission.Write
}
function CanManage(p:Permission){
  return (p & Permission.Manage) === Permission.Manage 
}
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

推薦閱讀更多精彩內(nèi)容