TypeScript从入门到精通(十九)枚举类型

写一个小demo
随机数喝酒游戏,我们随机摇到几就喝几杯酒

写一个随机数 随机生成0-6

const RandomNumber = Math.round(Math.random()*6)

再写一个方法


function Drink(num:number):string{
    if(num==0){
        return "免喝"
    }else if(num==1){
        return "喝一杯"
    }else if(num==2){
        return "喝两杯"
    }else if(num==3){
        return "喝三杯"
    }else if(num==4){
        return "喝四杯"
    }else if(num==5){
        return "喝五杯"
    }else if(num==6){
        return "喝六杯"
    }
    
}
console.log(Drink(RandomNumber))

这就简单的完成了我们的需求,但是上面的写法是初级者的写法。
我们来改造一下,如下代码

const RandomNumber = Math.round(Math.random()*6)

const Status ={
   zero:0,
   one:1,
   two:2,
   three:3,
   four:4,
   five:5,
   six:6,
}

function Drink(num:number):string{
    if(num==Status.zero){
        return "免喝"
    }else if(num==Status.one){
        return "喝一杯"
    }else if(num==Status.two){
        return "喝两杯"
    }else if(num==Status.three){
        return "喝三杯"
    }else if(num==Status.four){
        return "喝四杯"
    }else if(num==Status.five){
        return "喝五杯"
    }else if(num==Status.six){
        return "喝六杯"
    } 
}
console.log(Drink(RandomNumber))

但是上面还是不够高级,高级写法就会用到我们的枚举类型enum,如下代码

const RandomNumber = Math.round(Math.random()*6)
enum Status {
    zero,
    one,
    two,
    three,
    four,
    five,
    six
}
function Drink(num:number):string{
    if(num==Status.zero){
        return "免喝"
    }else if(num==Status.one){
        return "喝一杯"
    }else if(num==Status.two){
        return "喝两杯"
    }else if(num==Status.three){
        return "喝三杯"
    }else if(num==Status.four){
        return "喝四杯"
    }else if(num==Status.five){
        return "喝五杯"
    }else if(num==Status.six){
        return "喝六杯"
    } 
}
console.log(Drink(RandomNumber))
枚举类型的对应值

此时我们传值一个1,会输出喝一杯

console.log(Drink(1));
//打印结果:喝一杯

这看起来很神奇,这是因为枚举类型是有对应的数字值的,默认是从 0 开始的。我们直接用console.log()就可以看出来了。

console.log(Status.zero); //打印结果为:0
console.log(Status.one);//打印结果为:1
console.log(Status.two);//打印结果为:2
console.log(Status.three);//打印结果为:3
console.log(Status.four);//打印结果为:4
console.log(Status.five);//打印结果为:5
console.log(Status.six);//打印结果为:6

以看出结果就是0,1,2,3,4,5,6。这时候不想默认从 0 开始,而是想从 10开始。可以这样写

enum Status {
    zero = 10,
    one,
    two,
    three,
    four,
    five,
    six
}

我们可以枚举通过下标来反查一下是否是从10开始的

console.log(Status.zero)
console.log(Status.one)
console.log(Status[10])
console.log(Status[11])

输出的结果为: 10 11 zero one

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值