打字稿使用逻辑运算符将值分配给变量

时间:2019-03-03 20:27:03

标签: javascript typescript

export class SearchResult {
    id: string;
    constructor(obj?: any) {
        this.id = obj && obj.id || null;
    }
}

obj && obj.id || null是什么意思?我没有这种语法。

1 个答案:

答案 0 :(得分:5)

您的代码正在使用Typescript时,此问题实际上与JavaScript有关。

在JavaScript中,正确的&&表达式始终求值为表达式,而错误的&&表达式始终求值为false。

因此,在您的构造函数中,如果obj为truthy(例如null或undefined),则表达式将被求值,在这种情况下,将访问obj.id并将其值分配给this.id。如果obj不真实,则它将评估为false,并将空值分配给this.id。

此技术常用于React,请参见here作为示例。