类型断言|联合类型|交叉类型
联合类型 表示一个值可以是几种不同类型之一
tsxconst phone:number|string = '18023645623'//ok const phone:number|string = true//no //函数使用联合类型 const fn = (num1: string | number): boolean => { return !!num1 } console.log(fn(1))//true交叉类型 允许将多个类型合并为⼀个类型。合并后的类型将拥 有所有被合并类型的成员。交叉类型通常⽤于对象类型。
tsxinterface People{ name:string age:number } interface Man{ sex:number } const xiaoming = (man:People&Man)=>{ console.log(man.name) console.log(man.age) console.log(man.sex) } xiaoming({name:'小明',age:18,sex:1})类型断言 语法:值 as 类型
value as string或 <类型>值<string>value需要注意的是,类型断言只能够「欺骗」
TypeScript编译器,无法避免运行时的错误,反而滥用类型断言可能会导致运行时错误类型断言是不具影响力的
tsxinterface A { run:string } interface B { walk:string } const fn = (type:A|B):string=>{ return type.walk//有编译报错 } interface C { eat:string } interface D{ junk:string } const fn1 = (type1:C|D):string => { //可以用类型断言来判断是C接口类型的值 return (type1 as C).eat }
