问题描述
export class SearchResult {
id: string;
constructor(obj?: any) {
this.id = obj && obj.id || null;
}
}
obj && obj.id || null
是什么意思
obj && obj.id || null
是什么意思?
我不明白这个语法。
1楼
虽然您的代码使用的是 Typescript,但这个问题实际上与 JavaScript 有关。
在 JavaScript 中:
true && expression
将导致expression
被评估。
至于:
false && expression
这将评估为 false 导致expression
不被评估。
因此,在您的构造函数中,如果 obj 为(例如,既不是 null 也不是未定义),则将评估表达式,在这种情况下,访问 obj.id 并将其值分配给 this.id。 如果 obj 不是真值,那么它将评估为假,并将空值分配给 this.id。
这种技术在 React 中经常使用,请参见的示例。