export class SearchResult {
id: string;
constructor(obj?: any) {
this.id = obj && obj.id || null;
}
}
obj && obj.id || 是什么意思null
是什么意思?我不明白这种语法。
最佳答案
虽然您的代码使用的是 Typescript,但这个问题实际上与 JavaScript 有关。
在 JavaScript 中:
true && 表达式
将导致计算表达式
。
至于:
假 && 表达式
这将计算为 false,导致 expression
不被计算。
因此在你的构造函数中,如果 obj 是 truthy (例如,既不是 null 也不是未定义的)表达式将被评估,在这种情况下访问 obj.id 并将其值分配给 this.id。如果 obj 不是 truthy,那么它将计算为 false,并将 null 值分配给 this.id。
这种技术在 React 中经常使用,参见 here举个例子。
关于javascript - typescript 使用逻辑运算符为变量赋值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54973404/