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);
标签:
TypeScript
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· winform 绘制太阳,地球,月球 运作规律
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· AI 智能体引爆开源社区「GitHub 热点速览」
· 写一个简单的SQL生成工具