?? Operator in TypeScript
"Nullish Coalescing"
If the left operand is null or undefined,
the ?? expression evaluates to the right operand:
null ?? "n/a"
// "n/a"
undefined ?? "n/a"
// "n/a"
Otherwise, the ?? expression evaluates to the left operand:
false ?? true
// false
0 ?? 100
// 0
"" ?? "n/a"
// ""
NaN ?? 0
// NaN
Notice that all left operands above are falsy values.
If we had used the || operator instead of the ?? operator,
all of these expressions would've evaluated to their
respective right operands:
false || true
// true
0 || 100
// 100
"" || "n/a"
// "n/a"
NaN || 0
// 0