手摸手一起学习Typescript第四天 - 类型推论,联合类型 和 类型断言

669 阅读1分钟

这是我参与更文挑战的第8天,活动详情查看:更文挑战

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

联合类型 - union types

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

类型断言 - type assertions

function getLength(input: string | number): number {
  const str = input as string       // 当类型是string的时候(类型断言)
  if (str.length) {
    return str.length
  } else {
    const number = input as number      // 当类型是number的时候(类型断言)
    return number.toString().length
  }
}

类型守卫 - type guard

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

参考文档:Typescript中文网

人懒,不想配图,都是自己的博客内容(干货),望能帮到大家

公众号:小何成长,佛系更文,都是自己曾经踩过的坑或者是学到的东西

有兴趣的小伙伴欢迎关注我哦,我是:何小玍。 大家一起进步鸭