其他分享
首页 > 其他分享> > 类型断言与类型守卫

类型断言与类型守卫

作者:互联网

联合类型

// 自动进行了类型推论,推论为string,因为我们的'str'是一个字符串
let str = 'str'
// 此时再将它赋值为数字,就会报错
// str = 123
let numberOrString: number | string

类型断言

先强行将未知参数看做某个类型进行逻辑处理,如果逻辑处理有问题,则说明不是该类型,再强行看做另一个类型进行处理

function getLength(input: string | number): number {
  // 无论是string还是number都先断言为string来进行处理
  const str = input as string
  if (str.length) {
    return str.length
  } else {
    // 如果没有length再断言为number处理
    const number = input as number
    return number.toString().length
  }
}

类型守卫

先判断类型,再根据不同的类型进行不同的逻辑处理

function getLength2(input: string | number): number {
  if (typeof input === 'string') {
    return input.length
  } else {
    return input.toString().length
  }
}

标签:断言,number,守卫,length,str,类型,input,string
来源: https://www.cnblogs.com/JianXin1994/p/16289025.html