首页 > 解决方案 > 这是什么语法 isNaN(+str!)

问题描述

在这里找到

export function convertToUnit (str: string | number | null | undefined, unit = 'px'): string | undefined {
  if (str == null || str === '') {
    return undefined
  } else if (isNaN(+str!)) { // **** THIS LINE ****
    return String(str)
  } else {
    return `${Number(str)}${unit}`
  }
}

标签: javascripttypescript

解决方案


该表达式+str!结合了(JavaScript 运算符)一元加和(TypeScript 专有运算符)非空断言运算符

在完成之前不为空或未定义的!断言。但是,由于上面所做的测试,此时不能也不断言是不必要的。str+str == nullstr nullundefined

所以,它相当于

+str

它转换str为一个数字。然后将此数值传递给isNaNtrue如果值为NaN,则返回,否则返回false


推荐阅读