在最近的几个项目中,我使用以下模式来确保从后端接收的数据始终采用前端所需的格式:
var response = {
id:"1234",
someText:null,
someDate: "2018-07-27T14:16:56"
};
var template = {
id: DataShape.integer(),
someText: DataShape.string(""),
someDate: DataShape.date(),
missingProperty: DataShape.integer()
}
var result = DataShape.copy(response, template);
console.log(result);
/*Result:
{
"id":1234,
"someText":"",
"someDate":{ },//Date Object 2018-07-27T18:16:56.000Z
"missingProperty":null
}*/
对我们来说非常有用,并且在代码中节省了大量验证。 (例如确保不要尝试对null执行.toLowerCase())
性能开销似乎也很小。
这种方法有什么问题吗?无论出于什么原因,我都没有看到任何已经做到这一点的库。
(我并不是真的在寻找代码答案,但是关于维护库的建议会很好)
谢谢!