Typescript使用逻辑运算符将值赋给变量

问题描述 投票:4回答:1
export class SearchResult {
    id: string;
    constructor(obj?: any) {
        this.id = obj && obj.id || null;
    }
}

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

javascript typescript
1个回答
5
投票

虽然您的代码使用的是Typescript,但这个问题实际上与JavaScript有关。

在JavaScript中,true &&表达式始终计算为表达式,而false &&表达式始终计算为false。

因此,在构造函数中,如果obj是truthy(例如,既不是null也不是未定义),则将计算表达式,在这种情况下访问obj.id并将其值赋给this.id.如果obj不是真的,那么它将评估为false,并且null值将被赋值给this.id.

这种技术通常用在React中,参见here的例子。

© www.soinside.com 2019 - 2024. All rights reserved.