美文网首页
TypeScript ?? 空值合并操作符

TypeScript ?? 空值合并操作符

作者: 云上笔记 | 来源:发表于2021-03-02 17:40 被阅读0次

TypeScript 3.7新增了一个空值合并操作符(nullish coalescing operator) ??
当左侧的值为null或者 undefined 时,返回自定义的默认值。

const str = null ?? 'default string'; // 输出结果为 default string
const str1 = 0 ?? 'default string'; // 输出结果为 0
const str1 = '  '  ?? 'default string'; // 输出结果为'  '
const str2 = (undefined ?? -1) > -1; // 输出结果为 false
const str2 = (0 ?? -1) > -1; // 输出结果为 true

为何需要使用 ??

在我们写代码的过程中,往往会遇到这种场景:
当函数没有传入参数时,给它一个默认值

function plusTest(num) {
  const a = num || 'default string';
  console.log(a);
}
plusTest(); // default string
plusTest(0); // default string
plusTest(''); // default string
plusTest(false); // default string
plusTest(15); // 15

如上面代码第2行所示,当使用 || 操作符时,javascript 会先把左侧的值转成布尔类型进行判断,如果转换后的布尔值为true,则结果为左侧的值,否则为右侧值。当传入的参数是 0或者 false这种假值的时候,会导致函数中变量赋值不正确。
使用 ?? 的话,结果就不一样了,来看一下:

function plusTest(num) {
  const a = num ?? 'default string';
  console.log(a);
}
plusTest(); // default string
plusTest(0); // 0
plusTest(''); // ''
plusTest(false); // false
plusTest(15); // 15

这样就可以避免传入参数为假值时变量赋值不正确的问题。

在 angular 中使用 ??

首先 typescript 版本要在3.7及以上,其次如果 vscode 编辑器版本太低,也需要更新一下 vscode,不然代码中会报红线提示


图片.png

相关文章

  • TypeScript ?? 空值合并操作符

    TypeScript 3.7新增了一个空值合并操作符(nullish coalescing operator) ...

  • JavaScript中??和?.的意思

    空值合并操作符(??) 只有当左侧为null和undefined时,才会返回右侧的数 空值合并操作符(??)是一个...

  • node.js 14新特性

    1 Optional Chaining(可选链) 2 Nullish Coalescing(空值合并)逻辑或操作符...

  • javaScript 便捷的运算符们( ?? ??= &&=

    1、空值合并操作符(??)是一个逻辑操作符,当左侧的操作数为 [null]或者 [undefined]时,返回其右...

  • "?.","??","??=","!"基本用法

    空值合并操作符( ?? )ES2020 const a = b ?? c; // 解释为 如果b为null或un...

  • 关于ES6的空值合并运算符

    空值合并操作符(??)是一个逻辑操作符,当左侧的操作数为 null 或者 undefined 时,返回其右侧操作数...

  • 2021-07-19-🌦🌦 空值合并操作符??有哪些坑

    空值合并操作符(??) 只有当左侧为null和undefined和空时,才会返回右侧的数,否则返回左侧的重点: 0 除外

  • ES6以上操作符

    ??:空值合并操作符 只有当左侧表达式结果为nullish时,才返回右侧表达式结果。(和||的区别是:||只要左侧...

  • Swift 运算符

    合并空值运算符:?? 合并空值运算符(a ?? b) 如果可选项 a 有值则展开,如果没有值,是nil,则返回默认...

  • 合并空值运算符

    合并空值运算符 合并空值运算符(a ?? b):如果可选项 a 有值则展开,如果没有值,是nil,则返回默认值 b...

网友评论

      本文标题:TypeScript ?? 空值合并操作符

      本文链接:https://www.haomeiwen.com/subject/iwatqltx.html