运算符<无法应用于类型Number和boolean

时间:2019-05-08 14:59:58

标签: javascript typescript

我有三个数字,我试图比较其中两个数字是否包含其中一个。

  let myMonthly = this.profile.expectedpayhourlystart + 
  this.profile.expectedpayhourlyend;
  myMonthly = ((((myMonthly/2)*8)*5)*4);
  let jobStart = item.monthlyPrice - 200;
  let jobEnd = item.monthlyPrice + 200;

  if( jobEnd < myMonthly < jobStart ){ <-- 'Operator < cannot be applied to boolean or number'

  }

为什么我会收到此错误?我应该改变什么?

2 个答案:

答案 0 :(得分:3)

jobEnd < myMonthly

的计算结果为true或false。 因此,如果您写:

if( jobEnd < myMonthly < jobStart)

它本质上是试图评估

if( true < jobStart )

正在将<运算符应用于布尔值,因为jobStart是一个数字。

您需要这样写:

if( jobEnd < myMonthly && myMonthly < jobStart )

答案 1 :(得分:0)

如果像这样堆叠<运算符,它将对jobEnd < myMonthly求值,它会得到一个布尔值,并将结果与​​作为数字的jobStart进行比较。使用&&就像

if (jobEnd < myMonthly &&  myMonthly < jobStart)