交叉类型、联合类型、类型断言

联合类型(|)

联合类型,或者的意思

let numberOrString: number | string;

交叉类型(&)

交叉类型,两个都需要

interface a {
  name: string;
}
interface b {
  age: number;
}

type obj = a & b;
let obj1: obj = {
  name: 'dj',
  age: 11
}

类型断言

使用 as 关键字可以告诉 ts 我们是什么类型

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 在不同的条件分支里面,智能的缩小了范围,这样我们代码出错的几率就大大的降低了。

function getLength2(input: string | number): number {
  if (typeof input === 'string') {
    return input.length
  } else {
    return input.toString().length
  }}
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容