联合类型
let phone:number | string = '084-2142'
function phones(someting:number | boolean):boolean{
return !!someting
}
交叉类型:多种类型的集合,联合对象将具有联合类型的所有成员
interface People {
name:string,
age:number
}
interface Man {
sex:string
}
const lisi = (man:Prople & Man) => {
}
类型断言:值 as 类型 或者 <类型>值
需要注意的是:类型断言只能够“欺骗”TypeScript编译器,无法避免运行时的错误,不能滥用。
interface A {
run:string
}
interface B {
build:string
}
function fn(type:A | B){
return (type as A).run
}
//类型断言是不具有影响力的,在下面的例子中,将num断言为bollean,编译可以通过但是不会有什么影响
function toBlooean(num:number){
return num as blooean
}
toBlooean(1)// 1
as const:是对字面量的断言
let a = [1,2] as const
const b = [1,2]
a.unshift(30)//报错。此时已经断言字面量为[1,2],数据无法修改
b.unshift(30)//通过,没有修改指针