类型系统把“运行时才能发现的错误”提前到“写代码时”,配合编辑器补全,开发效率与代码质量同步提升。团队越大,TS 的收益越明显。
而且 TS 是渐进式的:可以按文件、按模块逐步引入,不用一夜之间全部改造。
定位:TS 不是另一种语言,是 JS 的超集与工具。它不改变运行时行为,只给你更多确定性。
掌握这些,日常开发足够用了。
联合/交叉/字面量/元组/枚举的正确用法。
让函数与组件复用不同类型。
typeof/in/判别联合,安全访问。
条件/映射/模板类型,进阶利器。
tsconfig 严格模式与路径别名。
Vue3/React 的 TS 最佳实践。
从零到严格模式的渐进式落地。
配置 tsconfig,先开宽松模式跑通,再逐步收紧。
吃透基础类型、接口、泛型,能写清晰的类型定义。
开启 strict,修复存量问题,让编译器成为你的检查官。
用类型体操解决复杂场景,沉淀团队类型规范。
几个值得开启的严格配置项。
| 配置项 | 作用 | 建议 |
|---|---|---|
| strict | 开启全部严格检查 | 必须开启 |
| noImplicitAny | 禁止隐式 any | 必须开启 |
| noUnusedLocals | 未使用变量报错 | 建议开启 |
| exactOptionalPropertyTypes | 可选属性精确性 | 进阶开启 |
| paths | 路径别名 | 工程化必备 |
先用推断,必要时显式标注;多利用内置工具类型(Partial、Pick 等)与编辑器补全,不必追求所有类型都手写。
能,但要少用且明确理由。用 any 会放弃类型保护,建议用 unknown + 收窄替代大多数场景。
先查 DefinitelyTyped 的类型包;没有则写局部声明或模块补充,不要用 any 一刀切。
前期会有一点学习成本,但长期来看:错误提前发现、重构更安全、协作更顺,整体效率是提升的。