类型推论,联合类型 和 类型断言

羅 2021年9月23日09:28:04
评论
30 719字

联合类型

Typescript 文档地址:联合类型 - union types

// 我们只需要用中竖线来分割两个 
let numberOrString: number | string
 // 当 TypeScript 不确定一个联合类型的变量到底是哪个类型的时候,我们只能访问此联合类型的所有类型里共有的属性或方法: 
numberOrString.length 
numberOrString.toString()

类型断言

Typescript 文档地址:类型断言 - type assertions

// 这里我们可以用 as 关键字,告诉typescript 编译器,你没法判断我的代码,但是我本人很清楚,这里我就把它看作是一个 string,你可以给他用 string 的方法。
function getLength(input: string | number): number {
  const str = input as string
  if (str.length) {
    return str.length
  } else {
    const number = input as number
    return number.toString().length
  }
}

类型守卫

Typescript 文档地址:类型守卫 - type guard

// typescript 在不同的条件分支里面,智能的缩小了范围,这样我们代码出错的几率就大大的降低了。
function getLength2(input: string | number): number {
  if (typeof input === 'string') {
    return input.length
  } else {
    return input.toString().length
  }
}

Typescript 文档地址:类型推论 - type inference

  • 本文由 发表于 2021年9月23日09:28:04
  • 转载请务必保留本文链接:https://luozz.cn/22
匿名

发表评论

匿名网友 填写信息

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: