TypeScript 类型思维
类型不是装饰,是约束
// ❌ 用 any 逃避
function process(data: any) { return data.value; }
// ✅ 用类型表达意图
interface ApiResponse<T> {
data: T;
error?: { code: string; message: string };
}第一段代码「能跑」,但你永远不知道它什么时候炸。
Discriminated Union 消灭状态 bug
type AsyncState<T> =
| { status: 'idle' }
| { status: 'loading' }
| { status: 'success'; data: T }
| { status: 'error'; error: Error };
// 现在 switch (state.status) 能让 TS 帮你穷尽黄金法则
如果你的 type 里需要写
as,十有八九是 type 设计错了。 :::
AI 时代,类型更重要
AI 写代码最大的不确定性是:它不知道你的数据流。
但如果你给它:
- 清晰的类型定义
- 函数签名(输入输出)
- 测试用例
它写出的代码准确率能从 60% 跳到 90%。