typescript枚举

枚举

使用枚举我们可以定义一些带名字的常量。 使用枚举可以清晰地表达意图或创建一组有区别的用例。 TypeScript支持数字的和基于字符串的枚举

数字枚举
//枚举类名首字母大写
enum Week {
  // 选项首字母大写
  // Sunday=9, // 不写值默认重0开始
  // Monday,//默认递增1
  // Toesday,
  // Wednesday,
  // Thursday,
  // Friday,
  // Saturday
  // 周日,不需要添加字符串,相当于声明的变量名称是:周日
  周日,周一,周二=10,周三,周四,周五,周六
} 

console.log(Week.周日);
字符串枚举
// enum   枚举   Sex枚举的名字
enum Sex {
  boy = '男',
  gril = '女'
}
function a2(sex: Sex) {
  console.log(`张三的性别是:${sex}`);
}
a2(Sex.boy)
计算和常量成员

每个枚举成员都带有一个值,它可以是 常量计算出来的。 当满足如下条件时,枚举成员被当作是常量

  • 它是枚举的第一个成员且没有初始化器,这种情况下它被赋予值 0
// E.X is constant:
enum E { X }
  • 它不带有初始化器且它之前的枚举成员是一个 数字常量。 这种情况下,当前枚举成员的值为它上一个枚举成员的值加1。
  // All enum members in 'E1' and 'E2' are constant.
  
  enum E1 { X, Y, Z }
  
  enum E2 {
      A = 1, B, C
  }
  • 枚举成员使用 常量枚举表达式初始化。 常数枚举表达式是TypeScript表达式的子集,它可以在编译阶段求值。 当一个表达式满足下面条件之一时,它就是一个常量枚举表达式:
    • 一个枚举表达式字面量(主要是字符串字面量或数字字面量)
    • 一个对之前定义的常量枚举成员的引用(可以是在不同的枚举类型中定义的)
    • 带括号的常量枚举表达式
    • 一元运算符 +, -, ~其中之一应用在了常量枚举表达式
    • 常量枚举表达式做为二元运算符 +, -, *, /, %, <<, >>, >>>, &, |, ^的操作对象。 若常数枚举表达式求值后为 NaNInfinity,则会在编译阶段报错。

异常

程序运行意外发生的情况
一.除法运算

function chu(num1: number, num2: number) {
  if (num2 == 0) {
    // throw  抛出异常
    throw new Error('除数不能为零')
  }
  let num: number = num1 / num2
  console.log(num);
}

程序出现于异常会停止运行
二.捕获异常

try {//尝试执行有可能有异常的代码块
  chu(1, 0)
} catch (error) {//对异常进行处理 error是出现的错误
  // error值是可以改的
  // console.log(error);
  console.log(error.message);

}
chu(1, 1)

主动去捕获异常
例:

try {
  if (getNum(num3)>60) {
    console.log('及格');
    
  }else{
    console.log('不及格');
    
  }
} catch (err) {
  console.log("不及格");
}

模拟输入一个年龄,输完年龄之后,提示输入成功
不管是不是出现异常,都需要提示输入成功

let num: string = 'a12'
// 转化
function getNum(num: string): number {
  if (parseInt(num)) {
    return parseInt(num)
  } else {
    throw new Error('年龄输入错误')
  }
}
function ts() {
  try {
    console.log('模拟输入的值为:' + num);
    let age = getNum(num)
    console.log('年龄是:' + age);

  } catch (error) {

  } finally {
    //finally 无论是否出现异常都要执行
    // 异常的最终解决方案
    console.log('输入成功');
  }

}
ts()

先执行finally然后再执行return

异常的处理方法的总结
1.主动捕获方式 try catch finally
try {
有可能出现异常的代码
} catch (error) {
对异常的处理
}finally{
无论是否有异常都会执行的代码
}
2,抛出异常
throw new Error(‘提示词’)
3.throws 声明异常 暂时无法使用 todo
function a()throw ReferenceError{
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值