打字稿-对象的条件属性

时间:2018-07-23 19:40:00

标签: javascript typescript object properties conditional

我有以下我希望具有条件属性的对象:

{ name: this.username, DOB: new Date(this.inputDate)}

说,如果用户指定了性别,我希望添加第三个属性,即性别。以下内容的正确语法是:

{ name: this.username, DOB: new Date(this.inputDate), if(this.userGender) gender: this.userGender}

P.S。我不希望在对象中具有gender属性(如果没有值)。那么,只有在满足条件的情况下,我才能如何创建属性?

2 个答案:

答案 0 :(得分:3)

理想情况下,您只需在声明对象后将适当的属性添加为第二个操作。像这样:

const myObj = {
    name: this.username,
    DOB: new Date(this.inputDate),
}

if(this.userGender) myObj.gender = this.userGender;

但是,有时最好在它们的其余部分内联声明一个“可选”属性,在这种情况下,您可以使用对象传播来获得所需的效果:

const myObj = {
    name: this.username,
    DOB: new Date(this.inputDate),

    ...this.userGender
        ? { gender: this.userGender }
        : {}
}

答案 1 :(得分:0)

尝试一下

$.ajax()