当前位置: 代码迷 >> JavaScript >> 打字稿使用逻辑运算符为变量赋值
  详细解决方案

打字稿使用逻辑运算符为变量赋值

热度:86   发布时间:2023-06-06 10:24:09.0
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 && expression

将导致expression被评估。

至于:

false && expression

这将评估为 false 导致expression不被评估。

因此,在您的构造函数中,如果 obj 为(例如,既不是 null 也不是未定义),则将评估表达式,在这种情况下,访问 obj.id 并将其值分配给 this.id。 如果 obj 不是真值,那么它将评估为假,并将空值分配给 this.id。

这种技术在 React 中经常使用,请参见的示例。

  相关解决方案