Typed Props 与组件边界

- 对外导出的组件 props 必须具名类型并保持稳定。
- 为复杂 props 拆分小类型,便于复用与测试。
自定义 Hook 的类型
- 返回值与参数都要显式标注,避免
any外溢。 - 约定返回元组/对象的字段语义,必要时使用
readonly与as const。
异步数据与错误
- 服务端数据类型集中定义在
lib/层,由前后端共享(如 tRPC/ OpenAPI 生成)。 - 使用
Result-like 类型或 Discriminated Union 搭配switch进行穷尽检查。
事件与回调

React.MouseEvent<HTMLButtonElement>等具体化事件类型,减少隐式any。- 通过
type别名定义统一的回调签名,避免重复。
进阶:泛型组件
- 表格、表单等容器类组件可使用泛型约束数据结构,提升可复用性。
- 与
satisfies、keyof、infer等搭配可以在推断与约束间取得平衡。
结语
类型是契约。保持 API 稳定、消除 any、明确错误分支,你的 React 代码会更可靠。
