最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

TypeScript 中合并運算符??

 更新時間:2026年05月25日 09:49:08   作者:Raink老師  
TypeScript的合并運算符??提供了一種處理null/undefined值的簡潔方式,它僅在值為null/undefined時返回默認值,不會將0或空字符串視為空值,適用于函數(shù)參數(shù)默認值、對象屬性設置等場景,下面就來詳細的了解一下

在 TypeScript 中,合并運算符(??) 是一種邏輯運算符,用于在變量為 nullundefined 時提供默認值。它讓代碼在處理“空值”場景時更加簡潔、清晰、可預測。

一、語法說明

合并運算符由兩個問號組成:

變量 ?? 默認值

該運算符的邏輯是:如果左側的值是 null 或 undefined,則返回右側的默認值;否則返回左側的值本身。

?? 注意:與邏輯或運算符(||)不同,??不會0、false 或空字符串 "" 視為“空值”。

二、實用示例

示例 1:函數(shù)中的默認值設置

以下函數(shù)通過 Nullish 合并運算符為 input 參數(shù)設置了默認值 100

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

displayValue() 中未傳入?yún)?shù),inputundefined,因此使用了默認值 100。而在傳入 50 時,使用的是實際值。

示例 2:對象屬性默認值設置(常用于 JSON)

當從 JSON 或其他外部數(shù)據(jù)源獲取對象時,某些字段可能缺失??梢允褂??? 為這些屬性設定默認值。

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 合并運算符在大多數(shù)現(xiàn)代瀏覽器中已經(jīng)得到支持:

  • ? Google Chrome 80+
  • ? Microsoft Edge 80+
  • ? Firefox 72+
  • ? Safari 13.1+
  • ? Opera 67+

?? TypeScript 會將 ?? 編譯為兼容 JavaScript 語法,確保在較老環(huán)境中依然可運行(需配置合適的編譯目標)。

四、總結

合并運算符(??)是 TypeScript 中處理 nullundefined 值的利器,特別適合用于:

  • 函數(shù)參數(shù)默認值
  • 對象屬性默認值
  • 用戶配置合并

它使得代碼更加健壯,避免不必要的類型判斷。是開發(fā)現(xiàn)代前端和后端應用時不可或缺的一部分。

如果你正在使用 TypeScript 開發(fā)項目,建議立刻開始使用 ?? 運算符,讓你的代碼更簡潔,更可控!

到此這篇關于TypeScript 中合并運算符??的文章就介紹到這了,更多相關TypeScript 合并運算符內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • 詳解ES6新增字符串擴張方法includes()、startsWith()、endsWith()

    詳解ES6新增字符串擴張方法includes()、startsWith()、endsWith()

    這篇文章主要介紹了詳解ES6新增字符串擴張方法includes()、startsWith()、endsWith(),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-05-05
  • 原生JS實現(xiàn)實時鐘表

    原生JS實現(xiàn)實時鐘表

    這篇文章主要為大家詳細介紹了原生JS實現(xiàn)實時鐘表,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-08-08
  • js動態(tài)設置關鍵偵@keyframes的方法技巧

    js動態(tài)設置關鍵偵@keyframes的方法技巧

    這篇文章主要給大家介紹了關于js動態(tài)設置關鍵偵@keyframes的方法技巧,@keyframes規(guī)則通過在動畫序列中定義關鍵幀(或waypoints)的樣式來控制CSS動畫序列中的中間步驟,文中通過代碼介紹的非常詳細,需要的朋友可以參考下
    2024-04-04
  • 利用原生JS自動生成文章標題樹的實例

    利用原生JS自動生成文章標題樹的實例

    網(wǎng)上關于生成文章標題樹的示例很多,這篇文章介紹的是利用原生JS實現(xiàn)自動生成文章標題樹,實現(xiàn)過程很簡單,有需要的可以參考借鑒。
    2016-08-08
  • 一個頁面元素appendchild追加到另一個頁面元素的問題

    一個頁面元素appendchild追加到另一個頁面元素的問題

    一般都是自己創(chuàng)建元素然后append到頁面的但是如果是頁面本身有的元素append到另一個頁面元素呢,很多的新手朋友對此問題比較好奇,本人也是如此啊,好了不多說,切入主題,感興趣的朋友可以了解下哦
    2013-01-01
  • javascript通過元素id和name直接取得元素的方法

    javascript通過元素id和name直接取得元素的方法

    這篇文章主要介紹了javascript通過元素id和name直接取得元素的方法,涉及javascript獲取元素的相關技巧,非常具有實用價值,需要的朋友可以參考下
    2015-04-04
  • javascript操作數(shù)組詳解

    javascript操作數(shù)組詳解

    這篇文章主要詳細介紹了javascript操作數(shù)組的方法以及示例,需要的朋友可以參考下
    2014-12-12
  • JS的replace方法

    JS的replace方法

    在javascript中,String的函數(shù)replace()簡直太讓人喜愛了。它靈活而強大的字符替換處理能力,這里簡單介紹下,方便需要的朋友
    2013-12-12
  • JS ES6中setTimeout函數(shù)的執(zhí)行上下文示例

    JS ES6中setTimeout函數(shù)的執(zhí)行上下文示例

    這篇文章主要給大家介紹了關于JS ES6中setTimeout函數(shù)的執(zhí)行上下文的相關資料,文中給出了詳細的介紹和示例代碼供大家參考學習,需要的朋友們下面來一起看看吧。
    2017-04-04
  • 基于Leaflet的Webgis經(jīng)緯網(wǎng)格功能實現(xiàn)

    基于Leaflet的Webgis經(jīng)緯網(wǎng)格功能實現(xiàn)

    本文將介紹一款Leaflet的經(jīng)緯網(wǎng)插件,基于這款經(jīng)緯網(wǎng)插件,詳細介紹如何實現(xiàn)經(jīng)緯網(wǎng)功能,本文通過實例代碼給大家介紹的非常詳細,感興趣的朋友跟隨小編一起看看吧
    2023-12-12

最新評論

志丹县| 理塘县| 娄底市| 迁西县| 泗阳县| 青田县| 星子县| 德州市| 昭平县| 道孚县| 井冈山市| 崇仁县| 义乌市| 阿鲁科尔沁旗| 光泽县| 门源| 巧家县| 叙永县| 云霄县| 新疆| 来凤县| 壤塘县| 海城市| 册亨县| 翼城县| 辰溪县| 宁国市| 黎平县| 壶关县| 泗水县| 乡宁县| 景德镇市| 丹凤县| 磴口县| 通山县| 昌图县| 孝昌县| 石楼县| 五河县| 那坡县| 吉林省|