如何在打字稿中做非短路情况?

时间:2016-09-21 09:28:26

标签: javascript typescript evaluation-strategy

如何用打字稿中的非短路方式评估条件? Typescript不允许&|表示布尔类型。 我需要非短路检查的原因是我在函数isValueValid中调用showErrors。

鉴于此功能

function isValue1Valid(){
  if(value1 === 0) return true;    
  showErrors1();
  return false;
}

function isValue2Valid(){
  if(value2 === 0) return true;    
  showErrors2();
  return false;
}

然后在我的情况下

if(isValue2Valid() & isValue2Valid()){
//Submit data
}

虽然我可以像这样做

if(isValue2Valid() & isValue2Valid()){
//Submit data 
   return;
}
showErrors1()
showErrors2()

但我觉得在isValueValid函数里面调用它。实际上,我总是认为默认情况下会出现显示错误。

2 个答案:

答案 0 :(得分:3)

要回答你的问题,你可以做到

$scope.promoAction()

评估所有函数调用,然后组合它们的值。但你首先不应该if ([isValue2Valid(), isValue2Valid()].every(Boolean)) { //Submit data } 致电isValueValid。相反,让您的测试函数 showError 出现错误消息,然后如果有,请显示它们:

return

答案 1 :(得分:1)

如果你想使用带有副作用的函数(一般来说这不是一个好主意),可能有助于明确所谓的以及何时:

   var value1Valid = isValue1Valid(); // might show some messages
   var value2Valid = isValue2Valid(); // might show some more messages

   if (value1Valid && value2Valid) {
        // submit data
   }
相关问题