【TypeScript】类型断言、联合类型、交叉类型

联合类型

let phone:number | string = "123"
let fn = function (type:number | boolean):boolean {
    
    
  return !!type
}

交叉类型

interface People {
    
    
  name:string,
  age: number
}
interface Man {
    
    
  sex: number
}
// 类似于 extends
const jack = (man:People & Man):void => {
    
    
  console.log(man);
}
jack({
    
    
  name:'jack',
  age:22,
  sex:0
})

类型断言

let fn = function (num:number | string):void {
    
    
  console.log((num as string).length);
  console.log((<string>num).length);
}
fn('123') // 3
fn(13) // undefined

interface A {
    
    
  run:string
}
interface B {
    
    
  build: string
}
let fn = (type: A | B):void => {
    
    
  console.log((type as A).run);
  console.log((<A>type).run);
}
fn({
    
    
  run:"run" // run
})
fn({
    
    
  build:"build" // undefined
})

猜你喜欢

转载自blog.csdn.net/XiugongHao/article/details/132333358