我已经实现了一个接口,它保存要发送到服务器的数据。
export interface AdminRegistrationData extends User {
password?: string;
termsAccepted?: boolean;
}
我将输入数据正确地映射到相关的password
、termsAccepted
字段。但是,当将映射的数据以json的形式发送到服务器时,我希望将termsAccepted
键更改为一个API端点的terms_accepted
。对于另一个API端点,我只想发送password
属性。我可以通过将上面的接口对象转换为json字符串来实现我想要的结果,并做一个替换。但我觉得这是一种丑陋的方式。
所以我想听听你的消息.
发布于 2016-12-29 10:37:27
您可以克隆对象、添加新属性和删除旧属性:
interface AdminRegistrationDataToSend extends User {
password?: string;
terms_accepted?: boolean;
}
function prepareToSendData(data: AdminRegistrationData): AdminRegistrationDataToSend {
let clone = Object.assign({}, data) as AdminRegistrationDataToSend;
clone.terms_accepted = data.termsAccepted;
delete clone["termsAccepted"];
return clone;
}
function prepareToSendPassword(data: AdminRegistrationData): { password: string } {
return {
password: data.password
};
}
编辑
您可以使用箭头函数:
let prepareToSendData = (data: AdminRegistrationData): AdminRegistrationDataToSend => {
...
}
但我不明白这件事有什么意义。
https://stackoverflow.com/questions/41377752
复制相似问题