问题场景
把一条正常的接口响应生成 TypeScript 类型后,线上遇到空值还是报错。样本生成的类型应该如何补全?
排查与解法按顺序复现、定位和验证
一个样本只说明一次结果
字段这次没有出现,不代表永远不存在;这次数值为整数,不代表所有响应都没有小数。生成器只能根据样本推断,不能替你确认完整业务契约。
补齐可选与可空
TypeScript 的可选属性与可空属性表达不同约束。开启严格类型检查后,分别处理缺失与 null;Java 包装类型与基本类型也需结合反序列化和校验约束确认。
type User = {
id: string;
nickname?: string | null;
};检查数组和边界字段
空数组没有提供元素类型证据。多种对象可能需要联合类型;金额和长 ID 不应仅按当前样本推断成浮点数。日期字符串也不会因为像日期就自动成为 Date 实例。
用契约和测试收尾
收集正常、空值、缺字段、分页为空和错误返回样本,对照 OpenAPI 或接口文档审核。编译通过后,还需运行时校验不受信输入,类型声明本身不会检查网络返回内容。