# 内容大纲
面向对象
泛型
装饰器
工具类型
# 面向对象
抽象类(abstract)
重写(override)
重载(overload)
继承 (extends) 子类 使用父类属性和方法
多态 不同的子类有不同的实现
# 泛型
# 定义
泛型指的是类型参数化,即原来某种具体的类型进行参数化
可以给泛型定义若干个参数类型
并在调用时给泛型传入明确的类型参数
# 特性
- 函数和类可以轻松地支持多钟类型,增强程序的扩展性
- 不必写多条函数重载,冗长的联合类型声明,增强代码可读性
- 灵活控制类型之间的约束,有效约束类型成员之间的关系
- 泛型可以写多个
function reflect<P>(param:P):P{
return param
}
const reflectStr=reflect<string>('string')
const reflectStr=reflect<number>(0)
1
2
3
4
5
6
7
2
3
4
5
6
7
# 泛型-参数
function useState<S>(state:S,initialValue>:S){
return [state,()=>void 0] as unknown as [S,(s:S)=>void]
}
1
2
3
4
2
3
4
# 泛型-类
class Memory<S>{
store:S
constructor(store:S){
this.store=store
}
set store(store:S){
this.store=store
}
get store(){
return this.store
}
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
2
3
4
5
6
7
8
9
10
11
12
13
14
15
# 泛型-组件
# 泛型-函数
# 泛型-接口
# 默认泛型
# 泛型约束
interface LengthWise={
}
function logger< T extends LengthWise>(val:T)
1
2
3
4
5
2
3
4
5
# 装饰器
类装饰器
类装饰器工厂
可以多,但不可以少
属性装饰器
方法装饰器
参数装饰器
装饰器执行顺序
1.类装饰器最后执行 ;后写先执行 2.方法和就去参数先执行
先内后外执行,先上后下
# 类型兼容性
# 类型声明
TIP
React + TypeScript最佳实践 ⭐️ https://juejin.cn/post/6952696734078369828/ (opens new window)