javascript技巧

关注公众号 jb51net

关闭
首页 > 网络编程 > JavaScript > javascript技巧 > TypeScript 合并运算符

TypeScript 中合并运算符??

作者:Raink老师

TypeScript的合并运算符??提供了一种处理null/undefined值的简洁方式,它仅在值为null/undefined时返回默认值,不会将0或空字符串视为空值,适用于函数参数默认值、对象属性设置等场景,下面就来详细的了解一下

在 TypeScript 中,合并运算符(??) 是一种逻辑运算符,用于在变量为 nullundefined 时提供默认值。它让代码在处理“空值”场景时更加简洁、清晰、可预测。

一、语法说明

合并运算符由两个问号组成:

变量 ?? 默认值

该运算符的逻辑是:如果左侧的值是 null 或 undefined,则返回右侧的默认值;否则返回左侧的值本身。

⚠️ 注意:与逻辑或运算符(||)不同,??不会0false 或空字符串 "" 视为“空值”。

二、实用示例

示例 1:函数中的默认值设置

以下函数通过 Nullish 合并运算符为 input 参数设置了默认值 100

function displayValue(input?: number) {
  const value = input ?? 100;
  console.log(value);
}
displayValue();     // 输出 100
displayValue(50);   // 输出 50

displayValue() 中未传入参数,inputundefined,因此使用了默认值 100。而在传入 50 时,使用的是实际值。

示例 2:对象属性默认值设置(常用于 JSON)

当从 JSON 或其他外部数据源获取对象时,某些字段可能缺失。可以使用 ?? 为这些属性设定默认值。

interface Settings {
  volume?: number;
  brightness?: number;
}
const userSettings: Settings = {
  volume: 0
};
const volume = userSettings.volume ?? 50;
const brightness = userSettings.brightness ?? 75;
console.log(`Volume: ${volume}`);         // 输出 Volume: 0
console.log(`Brightness: ${brightness}`); // 输出 Brightness: 75

volume 的值为 0,虽然是假值,但不是 null 或 undefined,因此不会使用默认值 50。
brightness 没有定义,因此使用了默认值 75。

三、浏览器支持情况

Nullish 合并运算符在大多数现代浏览器中已经得到支持:

🎯 TypeScript 会将 ?? 编译为兼容 JavaScript 语法,确保在较老环境中依然可运行(需配置合适的编译目标)。

四、总结

合并运算符(??)是 TypeScript 中处理 nullundefined 值的利器,特别适合用于:

它使得代码更加健壮,避免不必要的类型判断。是开发现代前端和后端应用时不可或缺的一部分。

如果你正在使用 TypeScript 开发项目,建议立刻开始使用 ?? 运算符,让你的代码更简洁,更可控!

到此这篇关于TypeScript 中合并运算符??的文章就介绍到这了,更多相关TypeScript 合并运算符内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

您可能感兴趣的文章:
阅读全文