TypeScript(6类型断言|联合类型|交叉类型)

80 阅读1分钟

联合类型

let tel: number | string = '32-3333300'

const fn = (type: number | string): boolean => {
  return !!type //强转
}
fn(0)
fn('true')

交叉类型

并且的关系 两个都包含 和 接口的extends类似 对象🌰

interface People {
  name: string,
  age: number
}
interface Man {
  sex: string
}

const durant: People & Man = {
  name: 'Durant',
  age: 32,
  sex: '男'
}

函数🌰

const fns = (user: People & Man):void => {

}
fns({
  name: 'durant',
  age: 32,
  sex: '男'
})

类型断言

写法1

const asFun = (val: number | string): void => {
  console.log((val as string).length)
}
asFun('3232')
asFun(123)  //undefined 断言在编译阶段,不能避免运行时的错误

写法2

interface C {
  run: string
}
interface D {
  build: string
}

const fnAs = (user: C | D): void => {
  console.log((<D>user).build)
}
fnAs({
  build: 'abc'
})