[英]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.