export class SearchResult { id: string; constructor(obj?: any) { this.id = obj && obj.id || null; } }
obj && obj.id || null是什么意思?我没有这个语法。
obj && obj.id || null
虽然您的代码使用的是Typescript,但这个问题实际上与JavaScript有关。
在JavaScript中,true &&表达式始终计算为表达式,而false &&表达式始终计算为false。
因此,在构造函数中,如果obj是truthy(例如,既不是null也不是未定义),则将计算表达式,在这种情况下访问obj.id并将其值赋给this.id.如果obj不是真的,那么它将评估为false,并且null值将被赋值给this.id.
这种技术通常用在React中,参见here的例子。