空合并合并运算符角度2


72

角度2中的空合并运算符(??)的等效项是什么?

在C#中,我们可以执行以下操作:

string str = name ?? FirstName ?? "First Name is null";

1
将OP的示例固定为正确的C#。
rsenna

Answers:


115

合并是通过||运算符执行的,即

let str:string = name || FirstName || "name is null and FirstName is null";

您也可以阅读问题以获取更多详细信息和说明。


21
否则,运算符(||)与无效合并不完全相同。例如:“” || “易卜拉欣”返回“易卜拉欣”和0 || “易卜拉欣”再次返回“易卜拉欣”。但与聚结第一操作返回“”和第二返回0。因为nullish聚结只能控制左侧值是否等于空或未定义
易卜拉欣Dolapci

4
当心-这不是null合并运算符作为false || true返回值true
Vedran

1
对于任何认为这无关紧要的人,因为nameFirstName变量很可能会发生strings,请考虑JavaScript和TypeScript如何处理空字符串。如果nameFirstName字段为空字符串,name is null and First Name is null即使它们都不为空,也将导致结果。
Michael Ziluck

1

也许您想要实现的是:

let str =
    typeof (name) !== 'undefined' && name !== null ?
        name : typeof (FirstName ) === 'undefined' || FirstName  === null ?
        "First Name is null" : FirstName 

1
如果nameFirstName字段为空字符串,First Name is null即使它们都不为空,也将导致结果。
Michael Ziluck

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.