题目描述
现有
interface a {
a_b: string?,
c_d: number?,
e_f: SomeItem[]?
g_h: string?
}
如何快速得到类型
interface b { aB: string, cD: number, eF: SomeItem[] gH: string }
有与
a
类型匹配的对象object1 = { a_b: "zhangsan", c_d: 100, e_f: [ {name: "lisi", age: 17}, {name: "wangwu", age: 20} ] }
如何快速得到相同 value 但与
b
类型匹配的object2 = { aB: "zhangsan", cD: 100, eF: [ {name: "lisi", age: 17}, {name: "wangwu", age: 20} ], gH: "" }
题目来源及自己的思路
业务中遇到的一个重写键名的问题,目前的解决方法是
const formatItem = (obj: a): b => {
return {
aB: obj.a_b ?? "",
cD: obj.c_d ?? 0
}
}
这种方法,想请教各位大佬有没有优雅一点的方法
使用ts类型库type-fest的
CamelCasedProperties
https://github.com/sindresorhus/type-fest/blob/main/source/camel-case.d.ts