提出问题
定义函数,形参的值只能是 星期一 ~ 星期日,如果传入是 星期六、星期日 就打印 周末休息,否则就打印 工作日上班
代码:
function isWork( week : string) : void {
if(week == '星期六' || week == '星期日'){
console.log("周末休息")
}else{
console.log("工作日去上班")
}
}
isWork('星期三')
isWork('星期六')
缺点
可以传入不合理的值,如下:
isWork('星期八')
isWork('李雷')
解决
使用 字面量类型
字面量类型
用在函数形参中,表示一组 固定的可选值,可以做校验,当传入其他值时,会报错
应用场景
函数形参的值,只能是 星期一、星期二、星期三、星期四、星期五、星期六、星期日,是固定的,只能选择之一
相当于交通灯 红、绿、黄,是固定的,只能选择之一
对比枚举类型
函数形参推荐使用字面量类型,更加方便、高效
声明
在形参的后面加上 : 值1 | 值2 | 值3,如下:
function 函数名(形参名: 值1 | 值2 | 值3 ){
}
解释: 调用函数时,只能传入 值1、值2、值3 之一
例子
function isWork(week: 'Mon' | 'Tue' | 'Wed' | 'Thur' | 'Fri' | 'Sat' | 'Sun'){
if(week == 'Sat' || week == 'Sun'){
console.log("周末休息")
}else{
console.log("工作日去上班")
}
}
调用函数传值-成功:
isWork('Mon')
isWork('Sun')
调用函数传值-报错:
isWork('星期八') // 传入其他值报错