2.7 良好的 TypeScript 类型支持
用 TS 写框架并不等于类型支持友好:完善的类型支持是框架额外投入的结果,包括准确地推导用户代码、把声明文件正确地随包分发。
一、TypeScript 简介
- TypeScript(简称 TS)是由微软开源的编程语言,是 JavaScript 的超集。
- 使用 TS 的好处:代码即文档、编辑器自动提示、一定程度上能够避免低级 bug、代码的可维护性更强。
二、常见误区
「只要是使用 TS 编写框架,就等价于对 TS 类型支持友好」——这是两件完全不同的事。 框架想要做到完善的类型支持,需要付出相当大的努力。
三、类型支持要做好的三件事
| 方面 | 说明 |
|---|---|
| 类型准确 | 推导结果必须与运行时行为一致,错误的类型比没有类型更难排查 |
| 可被推导 | 用户代码不必手写泛型:组件的 props 等能从传入的对象自动推导出类型 |
| 声明可分发 | .d.ts 需随构建产物发布(package.json 的 types / exports 字段指向它),并兼顾不同 TS 版本与 tsconfig 配置 |
四、易错点
不用 TS 编写的框架同样可以通过
.d.ts提供类型支持;反过来,用 TS 写了框架但声明文件组织混乱、推导结果不准确,用户用起来一样难受。
相关
- 2.6 错误处理:同为提升用户开发体验的框架设计要素。