
我最近在看 ABAP 和 TypeScript 类型系统的差异时,PartialT是一个很好的切入点。因为它表面上只是把属性变成可选,实际牵涉到两门语言对类型、对象、结构体、更新语义的不同理解。TypeScript 官方文档对PartialType的定义很直接,它会构造一个新类型,让原类型的所有属性都变成 optional,并且这个新类型可以表示原类型所有字段子集。官方示例里,updateTodo接收完整的Todo,同时接收PartialTodo作为待更新字段,只传入description也能通过编译。(TypeScript)ABAP 里没有一个语法级别的泛型工具,可以把某个结构类型ty_sales_order自动变成partial ty_sales_order,也没有像 TypeScript mapped type 那样遍历字段并修改字段 optional 属性的类型变换机制。ABAP 的结构类型由TYPES BEGIN OF ... END OF这样的声明静态定义,组件是什么、组件类型是什么,编译期已经确定。SAP ABAP 文档对结构类型的描