类型别名 Type Aliases

类型别名

:::warning 其实就是给类型起一个别名,让它可以更方便的被复用。 :::

例子

  1. // 一般我们定义类型是这样写的,这样每次定义这种类型的时候都要写一次(x:number,y:number)
  2. let sum: (x:number,y:number) => number
  3. const result = sum(1,2)
  4. // 类型别名的写法
  5. type PlusType = (x:number,y:number) => number
  6. let sum2 : PlusType
  7. let sum3 : PlusType
  8. // 支持联合类型
  9. type StrOrNumber = string | number
  10. let result2: StrOrNumber = 2;
  11. let result3: StrOrNumber = '你好'
  12. // 字符串字面量
  13. type Directions = 'Up' | 'Down' | 'Left' | 'Right'
  14. let toWhere: Directions = 'Up'
  15. let toWhere: Directions = 'Up2' // 报错 不能将类型“"Up2"”分配给类型“Directions”

交叉类型&

Intersection Types :::warning 这个概念很好理解,其实就是并且的意思 :::

例子

  1. interface IName {
  2. name: string
  3. }
  4. // 使用并且的效果
  5. type IPerson = IName & { age:number }
  6. let person: IPerson = {name:'张三', age:18 }