• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

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

原作者: [db:作者] 来自: [db:来源] 收藏 邀请
  • 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);


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
TypeScript-运行时和常量枚举发布时间:2022-07-18
下一篇:
TypeScript-never和object类型发布时间:2022-07-18
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap