标签: javascript typescript
export class SearchResult { id: string; constructor(obj?: any) { this.id = obj && obj.id || null; } }
obj && obj.id || null是什么意思?我没有这种语法。
obj && obj.id || null
答案 0 :(得分:5)
您的代码正在使用Typescript时,此问题实际上与JavaScript有关。
在JavaScript中,正确的&&表达式始终求值为表达式,而错误的&&表达式始终求值为false。
因此,在您的构造函数中,如果obj为truthy(例如null或undefined),则表达式将被求值,在这种情况下,将访问obj.id并将其值分配给this.id。如果obj不真实,则它将评估为false,并将空值分配给this.id。
此技术常用于React,请参见here作为示例。