TypeScript中的“??”运算符

TypeScript中的“??”运算符,typescript,Typescript,我有以下代码: const helperText = fieldError ?? !salesforceLink ? t('editEstimate.reviewInformation.mandatoryFieldsError') : ''; 有人能给我发一个链接吗?什么??是吗?如所述: nullish coalescing操作符是另一个即将推出的ECMAScript特性,它与可选链接密切相关,我们的团队一直在支持TC39 你可以想到这个功能-的??运算符-在处理null或未定义时,作为“回

我有以下代码:

const helperText = fieldError ?? !salesforceLink ? t('editEstimate.reviewInformation.mandatoryFieldsError') : '';
有人能给我发一个链接吗?什么??是吗?

如所述:

nullish coalescing操作符是另一个即将推出的ECMAScript特性,它与可选链接密切相关,我们的团队一直在支持TC39

你可以想到这个功能-的??运算符-在处理null或未定义时,作为“回退”到默认值的一种方式。当我们像这样编写代码时

let x = foo ?? bar();
这是一种新的方式,表示当值foo“存在”时将使用它;但当它为null或未定义时,请在其位置计算bar

同样,上述代码等同于以下代码

let x = (foo !== null && foo !== undefined) ?
    foo :
    bar();
这个??尝试使用默认值时,运算符可以替换| |的用法。例如,下面的代码段尝试获取上次保存在localStorage中的卷(如果有);但是,它有一个bug,因为它使用| |

function initializeAudio() {
    let volume = localStorage.volume || 0.5

    // ...
}
当localStorage.volume设置为0时,页面会将该卷设置为0.5,这是意外的??避免来自0、NaN和被视为虚假值的某些意外行为。

如前所述:

nullish coalescing操作符是另一个即将推出的ECMAScript特性,它与可选链接密切相关,我们的团队一直在支持TC39

你可以想到这个功能-的??运算符-在处理null或未定义时,作为“回退”到默认值的一种方式。当我们像这样编写代码时

let x = foo ?? bar();
这是一种新的方式,表示当值foo“存在”时将使用它;但当它为null或未定义时,请在其位置计算bar

同样,上述代码等同于以下代码

let x = (foo !== null && foo !== undefined) ?
    foo :
    bar();
这个??尝试使用默认值时,运算符可以替换| |的用法。例如,下面的代码段尝试获取上次保存在localStorage中的卷(如果有);但是,它有一个bug,因为它使用| |

function initializeAudio() {
    let volume = localStorage.volume || 0.5

    // ...
}
当localStorage.volume设置为0时,页面会将该卷设置为0.5,这是意外的??避免来自0、NaN和被视为虚假值的某些意外行为

nullish coalescing操作符是另一个即将推出的ECMAScript特性,它与可选链接密切相关,我们的团队一直在支持TC39

你可以想到这个功能-的??运算符-在处理null或未定义时,作为“回退”到默认值的一种方式。当我们像这样编写代码时

let x = foo ?? bar();
这是一种新的方式,表示当值foo“存在”时将使用它;但当它为null或未定义时,请在其位置计算bar

同样,上述代码等同于以下代码

let x = (foo !== null && foo !== undefined) ?
    foo :
    bar();
nullish coalescing操作符是另一个即将推出的ECMAScript特性,它与可选链接密切相关,我们的团队一直在支持TC39

你可以想到这个功能-的??运算符-在处理null或未定义时,作为“回退”到默认值的一种方式。当我们像这样编写代码时

let x = foo ?? bar();
这是一种新的方式,表示当值foo“存在”时将使用它;但当它为null或未定义时,请在其位置计算bar

同样,上述代码等同于以下代码

let x = (foo !== null && foo !== undefined) ?
    foo :
    bar();