JSON 与数据处理指南

从 JSON 生成 TypeScript 与 Go 类型:样例不能代替约定

生成类型后复核可选字段、混合数组、null 和数字精度,避免把样例当成完整接口定义。

Nav Tools ·

样例只展示已观察到的值

生成器根据看到的值推断结构,所有样例都有的字段并不会自动暴露其可选性。

应提供有代表性的记录并复核结果,单个成功响应无法覆盖错误响应、空数组或其他结构。

{"id":"00123","name":"Ada","tags":["reader"],"note":null}

缺失与 null 分开建模

TypeScript 可选属性与可空联合描述不同状态,Go 指针可以表示 null,但省略语义还取决于解析与序列化。

接口应明确字段未传与主动设 null 的差异,这条业务规则不能靠生成代码决定。

检查数组与数字

空数组无法提供元素类型信息,混合数组可能需要联合类型或显式的带判别字段对象。

不参与计算的 ID 可以使用字符串,JavaScript 数值、Go 整数和解码默认类型的精度与溢出边界不同。

编译并验证接口约定

把结果放到目标项目,使用真实编译选项检查;TypeScript 类型不会校验运行时收到的不可信 JSON。

必要时增加运行时 Schema 验证并保存接口样例,接口演进时重新生成后审查差异。

参考资料

← JSON 与数据处理指南