yarn create umi [app-name]
选择 antd pro
+ TypeScript
其它一路 NEXT 创建一个本地代码库。
代码片段📒
图 1 路由的定义
图 2 组件 Props 的定义
图 3 一个 FunctionComponent
图 4 HTTP 接口的定义
一些思考💡
使用 TS 的初级收益
- 配置文件 config.ts 有类型提示及检查,config.d.ts 类型定义可以兼作文档。
- 对外部组件尤其是 antd 等常用类库的引用方便了,组件 props 调用方便,节约查文档时间。
- HTTP 接口的入参与返回值可以类型化,结合接口代码自动生成工具(例如:OneAPI),可以大幅提效。
- 这些初级收益都是几乎零成本获取的,只要你有一个靠谱的 TS 脚手架,如:antd pro 😄
一些进阶的收益
- 给组件加上类型,语义更加清晰。
- 可以一路下钻,研究依赖的代码,不用看实现细节,光是看类型的定义也可以加深对源码的理解。
- 复杂项目中 push 开发者通过先定义类型,想清楚代码设计。
一些留白疑问🤔️
- 历史存留 JS 项目如何平滑升级至 TS?升级成本高的话,收益也会被抵消。
- 类型定义是有成本的,哪些场景进行类型定义是收益比较高的?须要一个最佳实践。