Back to posts
TypeScript Patterns for React

TypeScript Patterns for React

Typing props, hooks, and async data: patterns for safer React codebases.

XTOctober 15, 2025

Typed Props 与组件边界

TypeScript & React

  • 对外导出的组件 props 必须具名类型并保持稳定。
  • 为复杂 props 拆分小类型,便于复用与测试。

自定义 Hook 的类型

  • 返回值与参数都要显式标注,避免 any 外溢。
  • 约定返回元组/对象的字段语义,必要时使用 readonlyas const

异步数据与错误

  • 服务端数据类型集中定义在 lib/ 层,由前后端共享(如 tRPC/ OpenAPI 生成)。
  • 使用 Result-like 类型或 Discriminated Union 搭配 switch 进行穷尽检查。

事件与回调

DX Matters

  • React.MouseEvent<HTMLButtonElement> 等具体化事件类型,减少隐式 any
  • 通过 type 别名定义统一的回调签名,避免重复。

进阶:泛型组件

  • 表格、表单等容器类组件可使用泛型约束数据结构,提升可复用性。
  • satisfieskeyofinfer 等搭配可以在推断与约束间取得平衡。

结语

类型是契约。保持 API 稳定、消除 any、明确错误分支,你的 React 代码会更可靠。