typescript枚举

一,前言

1.enum是在typescript中新增的合法类型,是对JavaScript标准数据类型的一个补充。

2.enum主要作用是可以为一组限定范围内数值赋予友好的名字。

二,enum介绍

1.enmu的基本形式如下

enum Animals {
	Dog,
	Cat,
	Pig,
}

2.根据值和定义形式主要可以分为三种类型:数字枚举字符串枚举常量枚举

三,数字枚举

1.枚举值为数字的为数字枚举

enum Animals {
	Dog=1,
	Cat=2,
	Pig=3,
}

2.默认情况下,若不手动为枚举成员赋值,则会被定义成数字枚举,且从编号0开始递增为枚举成员赋值

enum Animals {
	Dog,
	Cat,
	Pig,
}

console.log(Animals.Dog)  //0
console.log(Animals.Cat)  //1
console.log(Animals.Pig)  //2

3.我们可以为其中的一个或多个手动赋值,之后的顺位按赋值的数值递增

enum Animals {
	Dog,
	Cow=5,
	Cat=2,
	Pig,
}

console.log(Animals.Dog)  //0
console.log(Animals.Cow)  //5
console.log(Animals.Cat)  //2
console.log(Animals.Pig)  //3

4.枚举项有两种类型:常数项计算所得项,前面所说的都是常数项,需要注意的是,当其中一项为计算所得项时,那么它的下位一定要赋予初始值,否则会报错,由于使用计算所得项,自动计算下位失效了。

enum Animals {
	Dog,
	Cow=Math.random(), //Cow为常数项
	Cat=2, //下一位需要赋予初始值,否则会报错
	Pig,
}

二,字符串枚举

1.枚举值为字符串的为字符串枚举

enum Animals {
	Dog="dog",
	Cat="cat",
	Pig="pig",
}

2.字符串枚举值要求每个字段的值都必须是字符串字面量,不能使用计算所得项

三,常数枚举

1.使用const enmu创建的枚举为常数枚举

const enum Animals {
	Dog="dog",
	Cat="cat",
	Pig="pig",
}

2.常数枚举和普通枚举的区别就是常数枚举本身会在编译的时候被删除,只会在使用到的地方,拿到相应的值进行替换。

四,反向映射

1.当我们定义了枚举可以使用enmu.key或者enmu[key]来获取值

const enum Animals {
	Dog="dog",
	Cat="cat",
	Pig="pig",
}

console.log(Animals["Dog"]) //dog
console.log(Animals.Cat) //cat

2.不仅如此我们可以根据值来获取枚举项的key

const enum Animals {
	Dog,
	Cat,
	Pig,
}
console.log(Animals[0]) //Dog
console.log(Animals[2]) //Pig

五,枚举类型

1.枚举本身和枚举成员可以作为一种类型来声明变量

enum Animals {
	Dog,
	Cat,
	Pig,
}

let test:Animals = Animals.Dog //枚举本身作为类型,只能赋值枚举里的枚举项
let test:Animals = 12 //声明了是Animals类型,赋值其他值会报错


let test:Animals.Dog = Animals.Dog //枚举成员作为类型,只能赋值相应的枚举值
let test:Animals.Dog = Animals.Cat //报错
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值