# TypeScript Coding Style

## 类型边界

- 类型先表达业务意图，再表达实现细节。
- 公开接口优先用明确类型，不轻易把 `any` 当作逃生口。
- 复杂对象优先用命名类型而不是内联大对象字面量。

## 模块与状态

- 数据获取、状态管理、展示逻辑分层清楚。
- 谨慎使用共享可变状态，优先保持数据流单向可追踪。
- 面向用户输入和外部数据时，显式处理 `undefined`、`null` 和异常结构。
