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

2023-04-11  本文已影响0人  回不去的那些时光

联合类型(|)

联合类型,或者的意思

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
  }}
上一篇 下一篇

猜你喜欢

热点阅读