TypeScript-数字枚举和字符串枚举
  TEZNKK3IfmPf 2023年11月13日 49 0

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);

TypeScript-数字枚举和字符串枚举

【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月13日 0

暂无评论

推荐阅读
  TEZNKK3IfmPf   2024年04月19日   36   0   0 typescript数组编译器
  TEZNKK3IfmPf   2024年05月17日   31   0   0 字符串php
TEZNKK3IfmPf