// FIELD_NOTE_20260805
TypeScript 的价值发生在边界
类型最有价值的地方,不是函数内部,而是网络、数据库与用户输入跨越系统边界的瞬间。
类型不能验证现实
as User 只会让编译器安静,并不会让 API 返回的数据突然正确。系统边界需要运行时验证。
const User = z.object({
id: z.string().uuid(),
email: z.string().email(),
})
const user = User.parse(await response.json())
内部代码可以依赖推断,外部数据必须经过验证。这样做形成一条简单规则:边界严格,内部轻盈。
错误也需要类型
不要只抛出 new Error('failed')。可恢复错误、权限错误和系统错误需要不同的用户界面。类型系统最终服务的不是代码,而是更诚实的交互。
讨论线程
0邮箱验证访客专属
正在读取讨论…
guest · verification required
分享图片 / 文件:先上传到「月品木子」网盘,再把生成的 ?q= 二字口令链接粘贴进来,会自动显示为取件卡片。
0 / 4000 字
附件下载
0附件存储于云端,支持大文件下载;带锁图标需作者指定的密码解锁后下载。