类型别名
:::warning 其实就是给类型起一个别名,让它可以更方便的被复用。 :::
例子
// 一般我们定义类型是这样写的,这样每次定义这种类型的时候都要写一次(x:number,y:number)
let sum: (x:number,y:number) => number
const result = sum(1,2)
// 类型别名的写法
type PlusType = (x:number,y:number) => number
let sum2 : PlusType
let sum3 : PlusType
// 支持联合类型
type StrOrNumber = string | number
let 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 }