TL; DR
- 探讨下 typescript 的亮点用法
- 求推荐在 typescript 实践上比较完善的开源项目
背景
最近写了一段时间的 react + typescript,但是总觉得没有发挥出 typescript 的功力,在我的实践里面只是用了 typescript 的静态类型检查替换 react 的 propTypes。
举个例子
这边举个例子。
由于用的 redux 来状态管理, 优点是层次是很清楚的,不过想要完善管理状态一个 actionCreator 就得在几个文件里面各种传递,这时候不只是 props 会有类型定义,我能想到的有下面几个地方就会需要定义强类型
- actionCreator 定义时,这里很可能是 thunk 函数,所以会把参数传给 api 层
- api 层,这里很可能写个 urlHelper 函数,也要定义一下
- api success、fail 要处理 response 的时候
- mapToDispatch 内部
- 当前、子 component 的 props
- component 内部的方法
想法
我现在的使用方式,是替换 react 自带的 propTypes, 想来是 react 16 把这部分分离出来的原因,可以很大程序上减少体积,还有就是 action 可以定义成 一个 baseType 然后,各个 action extends 出更具体的,相应的 response 可以定义个 baseType,在各个 response 再定义 baseType
最后,不知道大家有没有什么更好的想法,或者推荐一些实践比较好的开源项目启发一下。