13 - TS课程总结


# TS 思想总结



## 类型检查很有用



1. 检查错误
2. 一次写过(减少Debug)
3. 辅助系统设计(类型的思考方式)



## 类型是可以推导的



类型系统的构造

- 每个变量/值的类型
- 操作符的类型
- 表达式类型
- 函数的类型
- 类的类型

让所有程序都有类型!

- 更好的代码提示
- 更好的书写检查
- 更好的错误提示



## 类型是可以计算的



```tsx
type Unwrap = T extends Promise ? U : T
type p = Unwrap

```

类型可以被计算, 这为TS提供了强大的抽象能力。

```tsx
type RouteParams =
Route extends `${string}:${infer Rest}`
? RouteDic
: never

type RouteDic = {
[p in Arg] : string
}

const path = "/a/:page"

const params : RouteParams = {
'page' : 'abc'
}

```

## 类型帮助我们思考



思考【什么东西是什么】?

举例:FC和ComponentClass是____?



思考:设计一个类型存储css的长度下面方案可行吗?



```tsx
type CSSSize {
value : number,
unit : string
}
```