Smi*_*son 7 javascript conditional properties object typescript
我有以下对象,我希望拥有条件属性:
{ name: this.username, DOB: new Date(this.inputDate)}
Run Code Online (Sandbox Code Playgroud)
比如说,如果用户已经指定了他们的性别,我希望添加一个名为性别的第三个属性。以下内容的正确语法是什么:
{ name: this.username, DOB: new Date(this.inputDate), if(this.userGender) gender: this.userGender}
Run Code Online (Sandbox Code Playgroud)
PS如果没有价值,我不希望gender
在我的对象中拥有该属性。那么我如何才能在满足条件的情况下创建属性呢?
Ami*_*mir 18
也可以这样做,更加干净和可读。
const myObj = {
name: this.username,
DOB: new Date(this.inputDate),
...(this.userGender && { gender : this.userGender })
}
Run Code Online (Sandbox Code Playgroud)
CRi*_*ice 14
理想情况下,您只需在声明对象后添加适当的属性作为第二个操作。所以像:
const myObj = {
name: this.username,
DOB: new Date(this.inputDate),
}
if(this.userGender) myObj.gender = this.userGender;
Run Code Online (Sandbox Code Playgroud)
但是,有时最好与其余属性一起声明一个“可选”属性,在这种情况下,您可以使用 object spread 来获得您正在寻找的效果:
const myObj = {
name: this.username,
DOB: new Date(this.inputDate),
...this.userGender
? { gender: this.userGender }
: {}
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
8979 次 |
最近记录: |