Appearance
输入校验:前端边界上的 schema、类型与信任问题
主题边界
- 任何来自用户、URL、存储、第三方 SDK、后端接口的数据都属于边界输入。
- 边界输入的核心问题不是“有没有类型”,而是“能不能被信任”。
机制与流程
- 类型系统只能约束编译期假设,真正的不可信输入需要运行时 schema 校验与错误处理。
- 前端校验通常覆盖格式、长度、枚举、范围、文件类型和交互时机;服务端还必须做权限、业务一致性和安全校验。
- 表单库和 schema 工具能让显示错误、默认值解析和提交前归一化共用一套约束。
关键差异
- 类型推导说明代码想要什么,运行时校验说明真实世界给了什么。
- 前端校验更偏用户体验与早期拦截,后端校验负责最终信任裁决。
边界条件
- 只在 UI 层做必填校验,不处理非法状态和异常返回,会让数据质量问题在更深层爆炸。
- 把服务端返回直接断言成业务类型,是很多线上异常与安全缺陷的来源。
工程落点
- 稳定的前端边界通常会为 URL 参数、环境变量、表单输入、接口响应分别建立解析器。
- 当项目接入 TypeScript 时,schema 驱动的类型推断比手工重复写类型更可维护。