syntax.garden
M↓typescript-boundaries.md
返回知识流
// 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

附件存储于云端,支持大文件下载;带锁图标需作者指定的密码解锁后下载。

讨论线程

0

邮箱验证访客专属

正在读取讨论…
guest · verification required
分享图片 / 文件:先上传到「月品木子」网盘,再把生成的 ?q= 二字口令链接粘贴进来,会自动显示为取件卡片。
0 / 4000 字