联合类型
- 联合类型意思就是可以定义多种类型
- 变量
- 使用场景 比如手机号 和座机
let num: number = 12312312 let num2: number | string = '010-111322'
- 函数
- 使用场景 比如后台返回的是 0 1 或 true false
let fn = function (t: number | boolean): boolean { return !!t } let res1 = fn(0) // false let res2 = fn(1) // true let res3 = fn(true) // true let res4 = fn(false) // false
交叉类型
- 交叉类型 类似 extends 把两个接口合并了
interface Person { name: string age: number } interface Hobby { like: string } const res = (from: Person & Hobby) => { return from } let r1 = res({ name: '亚索', age: 12, like: '黑丝', }) // { name: '亚索', age: 12, like: '黑丝' }
类型断言
- 语法:值 as 类型&<类型>
const fn = function (num: number | string): void { console.log((num as string).length) } fn('123') // 3 fn(123) // undefined 数字么有length
- 例子
interface P1 { name: string } interface P2 { like: string } const fn = (params: P1 | P2): void => { console.log((params as P1).name) } fn({ name: '亚索', }) // 亚索 fn({ like: '黑丝', }) // undefined 因为打印的是P1.name
- 使用 any临时断言
(window as any).name = '艾克'