核心能力 / 少靠猜,多靠约束
类型意识
类型的价值不是让代码看起来更严谨,而是把接口数据、页面状态和业务分支变成团队可以共同理解的约定。我会重点约束边界数据,而不是为每个局部变量增加没有收益的复杂类型。
先用白话理解
这项能力到底是什么?
类型像数据说明书,告诉开发者一个字段应该是文字、数字,还是可能不存在。
我的判断方式
先约束外部数据
接口响应、路由参数、表单输入和本地缓存最容易失真,应优先建立类型与校验。
用联合类型表达状态
加载、成功、空数据和失败使用明确状态模型,减少多个布尔值组合出的非法状态。
避免逃逸
谨慎使用 any、非空断言和强制转换,无法确认的数据先收窄再使用。
交付检查
落地时会确认什么
- 接口数据是否有稳定模型
- 异步状态是否可能出现非法组合
- 公共组件泛型是否真的提升复用
- 类型错误是否能给出可行动的提示
可以怎样一步步做
- 先描述接口数据结构
- 明确哪些字段可能为空
- 区分加载、成功和失败状态
- 未知数据先判断再使用
常见误区
- 到处使用 any
- 认为有类型就不需要运行时校验
- 用强制转换掩盖接口问题
术语解释
- TypeScript:带类型检查的 JavaScript
- any:跳过类型检查的类型
- 联合类型:表示数种明确可能