这个语法是什么 isNaN(+str!)

man*_*dos 3 javascript typescript

在这里找到的

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}`
  }
}
Run Code Online (Sandbox Code Playgroud)

Cer*_*nce 5

该表达式+str!将(JavaScript 运算符)一元加号与(TypeScript 独占运算符)非空断言运算符组合在一起。

在完成之前断言!str为 null 也不未定义+。但是,由于str == null上面所做的测试,在这一点上str 不可能nullundefined:断言是不必要的。

所以,它相当于

+str
Run Code Online (Sandbox Code Playgroud)

转换str为一个数字。然后将该数值传递给,如果该值是,则isNaN返回,否则返回。trueNaNfalse