空值合并运算符

空值合并运算符在 2019 年 11 月成为 ECMAScript 标准中的候选特性。虽然还不是最终的标准,但核心功能已经基本确定。TypeScript 3.7 版本增加了对空值合并运算符的支持,因此我们可以在 TypeScript 3.7 以上的版本中直接使用该运算符。

空值合并运算符是一个新的二元逻辑运算符,它使用两个问号 ?? 作为标识。空值合并运算符的语法如下所示:

a ?? b

该语法中,当且仅当 ?? 运算符左侧操作数 a 的值为 undefinednull 时,返回右侧操作数 b;否则,返回左侧操作数 a

空值合并运算符与可选链运算符一样都具有短路求值的特性。当空值合并运算符左侧操作数的值不为 undefinednull 时,右侧操作数不会被求值,而是直接返回左侧操作数。