我有一个来自第三方API的类型,它有很多属性(50+),它们把所有的值都当作字符串。偶数和布尔值变成了字符串(分别是“5”和“false”),我想修复这个可怕的事情。
因此,我创建了一个类似这样的类型来接收来自API的响应,并在修复后保存
interface Person {
age: string | number,
name: string,
hasChildren: string | boolean,
...
}
我想把这个
const responseFromApi: Person = {
age: "20",
name: "John",
numberOfChildren: "true"
...
}
到
const afterTreatment: Person = {
age: 21,
name: "John",
numberOfChildren: true
...
}
这是一个例子...我的对象,再次,比这大得多,在这种情况下有很多 prop ,所以单独对待他们不是我正在寻找的解决方案。
我的意图是迭代对象,并将可以在type之后更改的内容更改为数字或布尔值。
2条答案
按热度按时间6ioyuze21#
你可以对数组进行for循环,检查element.age是否是字符串,如果是,解析age并重新设置它。一个更好的解决方案可能是Map列表,并做上面同样的事情,这样它就创建了一个新的数组,然后你可以覆盖它或做你需要做的事情。
想法:
zpqajqem2#
只要变量约定与person1、person2、person3等一致,这就可以工作,而且您还需要知道添加的人员总数,以便forloop工作