类型别名
:::warning 其实就是给类型起一个别名,让它可以更方便的被复用。 :::
例子
// 一般我们定义类型是这样写的,这样每次定义这种类型的时候都要写一次(x:number,y:number)let sum: (x:number,y:number) => numberconst result = sum(1,2)// 类型别名的写法type PlusType = (x:number,y:number) => numberlet sum2 : PlusTypelet sum3 : PlusType// 支持联合类型type StrOrNumber = string | numberlet result2: StrOrNumber = 2;let result3: StrOrNumber = '你好'// 字符串字面量type Directions = 'Up' | 'Down' | 'Left' | 'Right'let toWhere: Directions = 'Up'let toWhere: Directions = 'Up2' // 报错 不能将类型“"Up2"”分配给类型“Directions”
交叉类型&
Intersection Types :::warning 这个概念很好理解,其实就是并且的意思 :::
例子
interface IName {name: string}// 使用并且的效果type IPerson = IName & { age:number }let person: IPerson = {name:'张三', age:18 }
