首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >TypeScript-数字枚举和字符串枚举

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

原创
作者头像
杨不易呀
发布于 2023-09-28 11:26:09
发布于 2023-09-28 11:26:09
4160
举报
文章被收录于专栏:杨不易呀杨不易呀

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

TS 中支持两种枚举, 一种是 数字枚举, 一种是 字符串枚举

数字枚举

默认情况下就是数字枚举

代码语言:typescript
AI代码解释
复制
enum Gender {
    Male,
    Female
}

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

数字枚举注意点

  • 数字枚举的取值默认从 0 开始递增
代码语言:typescript
AI代码解释
复制
enum Gender {
    Male,
    Female
}

console.log(Gender.Male);
console.log(Gender.Female);
  • 数字枚举的取值可以是字面量, 也可以是常量, 也可以是计算的结果

字面量:

代码语言:typescript
AI代码解释
复制
enum Gender {
    Male = 1,
    Female
}

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

常量,如果使用常量给前面的枚举值赋值了, 那么后面的枚举值也需要手动的赋值:

代码语言:typescript
AI代码解释
复制
const num = 666;

enum Gender {
    Male = num,
    Female = 1
}

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

计算的结果,如果使用计算结果给前面的枚举值赋值了, 那么后面的枚举值也需要手动的赋值:

代码语言:typescript
AI代码解释
复制
function getNum() {
    return 888;
}

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

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

枚举反向映射

  • 可以根据枚举值获取到原始值
代码语言:typescript
AI代码解释
复制
enum Gender {
    Male,
    Female
}

console.log(Gender.Male);
  • 也可以根据原始值获取到枚举值
代码语言:typescript
AI代码解释
复制
enum Gender {
    Male,
    Female
}

console.log(Gender[0]);

字符串枚举

  • 如果使用字符串给前面的枚举值赋值了, 那么后面的枚举值也必须手动赋值
代码语言:typescript
AI代码解释
复制
enum Gender {
    Male = 'www.it6666.top',
    Female = 'yangbuyiya'
}

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

字符串枚举注意点

  • 如果使用字符串给前面的枚举值赋值了, 那么后面的枚举值也必须手动赋值上面已经介绍了
  • 和数字枚举不一样, 字符串枚举不能使用常量或者计算结果给枚举值赋值
  • 虽然字符串枚举不能够使用常量或者计算结果给枚举值赋值, 但是它可以使用内部的其它枚举值来赋值
代码语言:typescript
AI代码解释
复制
enum Gender {
    Male = 'yangbuyiya',
    Yao = Male
}

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

异构枚举

枚举中既包含数字又包含字符串, 我们就称之为 异构枚举

代码语言:typescript
AI代码解释
复制
enum Gender {
    Male = 6,
    Female = 'nv'
}

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

注意点:如果是字符串枚举, 那么无法通过原始值获取到枚举值:

代码语言:typescript
AI代码解释
复制
enum Gender {
    Male = 6,
    Female = 'nv'
}

console.log(Gender['nv']);
console.log(Gender);
end02
end02
输入图片说明
输入图片说明

最后

本期结束咱们下次再见👋~

🌊 关注我不迷路,如果本篇文章对你有所帮助,或者你有什么疑问,欢迎在评论区留言,我一般看到都会回复的。大家点赞支持一下哟~ 💗

我正在参与2023腾讯技术创作特训营第二期有奖征文,瓜分万元奖池和键盘手表

输入图片说明
输入图片说明

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • TypeScript-数字枚举和字符串枚举
  • 数字枚举
    • 数字枚举注意点
  • 枚举反向映射
  • 字符串枚举
  • 字符串枚举注意点
  • 异构枚举
  • 最后
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档