Closed j10ccc closed 1 month ago
项目里面现在的接口响应 JSON,属性名没有做到命名统一。经过协商,新接口都会采用 snake_case,老接口的新字段也会采用。而前端定义的变量名规范是 camelCase。为了直接使用 JSON 中的属性,需要一个函数来把响应数据的 snake_case 转换成 camelCase,并提供 ts 类型上的支持。
具体需求期望在 js 侧实现对象属性名 snake_case 到 camelCase 的转换(考虑存在子对象的情况)。同时定义好接口响应的数据类型后,包一层 Camelize<Data> 就能拿到前端能直接使用的 camelCase 的类型。
Camelize<Data>
type SnakeCaseExample = { red_apple: string; good_thing: { bad_animal: string; } } type Camelize<T> = { // TODO: 实现类型转换 } // 类型应该为 { redApple: string; goodThing: { badAnimal: string; } } type TransformedCase = Camelize<SnakeCaseExample>;
项目里面现在的接口响应 JSON,属性名没有做到命名统一。经过协商,新接口都会采用 snake_case,老接口的新字段也会采用。而前端定义的变量名规范是 camelCase。为了直接使用 JSON 中的属性,需要一个函数来把响应数据的 snake_case 转换成 camelCase,并提供 ts 类型上的支持。
具体需求期望在 js 侧实现对象属性名 snake_case 到 camelCase 的转换(考虑存在子对象的情况)。同时定义好接口响应的数据类型后,包一层
Camelize<Data>
就能拿到前端能直接使用的 camelCase 的类型。