联合类型

  1. type1 | type2
  • 使用 | 定义,只要是多个类型中的一种即可
    const getLength = ( value: number | string ): number => {
    return value.toString().length
    }
    

交叉类型

type1 & type2
  • 使用 & 定义,取多个类型的并集
    const merge = <T, U>(p1: T, p2: U): T & U => {
    const res = Object.assign(p1, p2)   
    return res
    }
    

类型别名 type

type name = type
type name<T> = T
  • 使用 type 关键字,可以给一个类型取别名,然后通过别名去引用那个类型
  • 本身并不是一个真正的类型,只是对一个类型的引用,类似于变量
  • 可以使用泛型,在对象属性中可以直接使用别名自身 ```typescript type TypeString = string // 正常使用 const str: TypeString = ‘asd’

type TypeT = T // 泛型别名 const what: TypeT = 123


<a name="T24MP"></a>
## 字面量类型
<a name="8ywTm"></a>
### 字符串字面量
```typescript
const name: 'xxxxx' = 'xxxxx'
  • 字符串字面量可以直接当做类型使用
  • 使用后值必须和这个字面量完全相同

数字字面量

const name: 18 = 18
  • 数字字面量也可以直接当做类型使用
  • 使用后值必须和这个字面量完全相同