我有一個函式可以檢測型別是否可以是數字并將其更改為任何可能的值Float,這在將資料從 csv 轉換為對所有內容進行字串化的 JSON 時非常有用。
const posibleNum: string | number = '3'
export const changeType = (entry: string | number) => {
return !isNaN(parseFloat(entry)) ? parseFloat(entry) : entry
}
const res = changeType(posibleNum)
console.log(typeof res)
// number
這適用于常規 JavaScript,但 TypeScript 沒有。
我明白了
`Argument of type 'string | number' is not assignable to parameter of type 'string'.
Type 'number' is not assignable to type 'string'.ts(2345)`
我該怎么做?
uj5u.com熱心網友回復:
編譯器無法理解您是在參考string還是number在parseFloat. 您可以添加另一個if條件以使編譯器知道您的輸入parseFloat是string100%。
const posibleNum: string | number = '3'
const changeType = (entry: string | number) => {
if(typeof entry === "number") {
return entry
}
const parsedEntry = parseFloat(entry)
return !isNaN(parsedEntry) ? parsedEntry : entry
}
const res = changeType(posibleNum)
console.log(typeof res)
操場
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/497430.html
標籤:javascript 节点.js 打字稿
