TypeScript-數字枚舉和字符串枚舉


  • TS 中支持兩種枚舉, 一種是 數字枚舉, 一種是 字符串枚舉

數字枚舉

默認情況下就是數字枚舉

enum Gender {
    Male,
    Female
}

console.log(Gender.Male);
console.log(Gender.Female);

數字枚舉注意點

  • 數字枚舉的取值默認從 0 開始遞增
enum Gender {
    Male,
    Female
}

console.log(Gender.Male);
console.log(Gender.Female);
  • 數字枚舉的取值可以是字面量, 也可以是常量, 也可以是計算的結果

字面量:

enum Gender {
    Male = 1,
    Female
}

console.log(Gender.Male);
console.log(Gender.Female);

常量,如果使用常量給前面的枚舉值賦值了, 那么后面的枚舉值也需要手動的賦值:

const num = 666;

enum Gender {
    Male = num,
    Female = 1
}

console.log(Gender.Male);
console.log(Gender.Female);

計算的結果,如果使用計算結果給前面的枚舉值賦值了, 那么后面的枚舉值也需要手動的賦值:

function getNum() {
    return 888;
}

enum Gender {
    Male = getNum(),
    Female = 1
}

console.log(Gender.Male);
console.log(Gender.Female);

枚舉反向映射

  • 可以根據枚舉值獲取到原始值
enum Gender {
    Male,
    Female
}

console.log(Gender.Male);
  • 也可以根據原始值獲取到枚舉值
enum Gender {
    Male,
    Female
}

console.log(Gender[0]);

字符串枚舉

  • 如果使用字符串給前面的枚舉值賦值了, 那么后面的枚舉值也必須手動賦值
enum Gender {
    Male = 'www.it6666.top',
    Female = 'BNTang'
}

console.log(Gender.Male);
console.log(Gender.Female);

字符串枚舉注意點

  • 如果使用字符串給前面的枚舉值賦值了, 那么后面的枚舉值也必須手動賦值上面已經介紹了
  • 和數字枚舉不一樣, 字符串枚舉不能使用常量或者計算結果給枚舉值賦值
  • 雖然字符串枚舉不能夠使用常量或者計算結果給枚舉值賦值, 但是它可以使用內部的其它枚舉值來賦值
enum Gender {
    Male = 'BNTang',
    Yao = Male
}

console.log(Gender.Male);
console.log(Gender.Yao);

異構枚舉

  • 枚舉中既包含數字又包含字符串, 我們就稱之為 異構枚舉
enum Gender {
    Male = 6,
    Female = 'nv'
}

console.log(Gender.Male);
console.log(Gender.Female);

注意點:如果是字符串枚舉, 那么無法通過原始值獲取到枚舉值:

enum Gender {
    Male = 6,
    Female = 'nv'
}

console.log(Gender['nv']);
console.log(Gender);

end02


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM