联合类型
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'
})