如何在javascript中创建模型以确保所有属性都存在

我想知道如何在
JavaScript中创建模型?

示例对象用户:应具有[name,username,password]这些属性,并且不应存在其他属性.

现在我想发送任何值,它应该返回具有这3个属性的对象,并忽略任何其他道具.

我试过用

var UserFactory = props => ({
  user    :props.user||'',
  username:props.username||'',
  ..etc
})

现在,当我传递用户对象时,确保所有属性都存在,并且不会发生未定义的错误.

我想要的原因是在获取/发布到服务器时规范化数据.

有没有最好的做法如何做到这一点?

p.s:如果重要的话,我在react-redux学习项目中使用它.

谢谢

编辑
上面代码的问题:

>我无法进行类型检查,因为工厂返回的是普通对象而不是模型userFactory({})instanceOf UserObject === false的实例,那么如何确定变量是否在内部持有userObject?
>它的详细,但如果我使用Object.assign(),我可能会在我的对象中获得不需要的属性,所以我不确定这是否是最好的方法.

最佳答案

is there an already best practice to how to do this ?

是的,这就是你在做什么 – 使用对象工厂.在构建新模型时,这是JS世界中的常用方法.但是,不使用ES5方法而是使用ES6方法进行参数处理:

let UserFactory = ({user='', username='', etc...}) => { ... }

查看更多here.

点赞