簡體   English   中英

為什么需要使用'==='比較打字稿中的枚舉?

[英]why need to use '===' to compare enums in typescript?

我嘗試使用'=='比較枚舉,但效果不佳。

if (data.event == ModalEventsEnum.SUBMIT) {
       this.calculatePorcentage();
}

this.calculatePorcentage()函數未執行。

假設您已經知道比較運算符“ ==”和“ ===”“的工作原理(請參見上面@edtheprogrammerguy提供的鏈接),則可以集中精力研究TypeScript枚舉的其他方面。

如果在定義枚舉時未指定其他任何類型,則默認情況下,枚舉為數字,為此,我將假定您的數字為數字。

使用枚舉時,有時存儲的值不是枚舉數值,而是枚舉元素名稱。 這通常是在UI中捕獲數據時。 當在服務中(主要是在后端服務中)接收到值時,我們將該值與枚舉常量進行比較。

在此片段中,比較將以'=='或'==='失敗,因為我們正在比較字符串“ SUMMIT”和一個類似1的數字(假設SUMMIT是第一個元素):

// For example: assuming data.event = "SUMMIT", instead of data.event = 1
if (data.event == ModalEventsEnum.SUBMIT) {
       this.calculatePorcentage();
}

您將需要在“ data.event”屬性中檢查要接收的數據(字符串或數字)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM