簡體   English   中英

如何在 parseInt 中使用聯合類型?

[英]how to use union types with parseInt?

我有一個作為字符串輸入的值,比如“1.5”如果它是一個數字,我希望它被記錄為一個數字。 此代碼將執行 j

  // parse out the value as a number if it is one
  let val = parseFloat(event.value) || event.value;
  event.value = val;

我有一個接口

interface IEvent {
  value: string | number;
  ...
}

但這給出了一個錯誤

'字符串類型的參數|數字未分配參數字符串'

因為 parseInt 需要一個字符串。

我怎樣才能解決這個問題,或者只是停止那個警告?

您可以使用類型保護來減少類型:

let num = event.value;
if (typeof num === 'string'){
    num = parseFloat(num) || num;
}

event.value = num;

在這個例子中,在類型保護內部, num的類型只是string 外面它仍然是string | number string | number

暫無
暫無

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

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