错误在条件表达式中不必要地使用布尔文字 no-unneeded-ternary

Posted

技术标签:

【中文标题】错误在条件表达式中不必要地使用布尔文字 no-unneeded-ternary【英文标题】:error Unnecessary use of boolean literals in conditional expression no-unneeded-ternary 【发布时间】:2017-07-31 01:30:51 【问题描述】:

我在atom 和ESLint 中尝试这个code

代码sn-p:

$scope.IsVisible = false;
$scope.ShowHide = function () 
  $scope.IsVisible = $scope.IsVisible ? false : true; // error
;

收到此 ESLint 错误:

尝试使用这些解决方案 solution 1 和 solution 2,但错误未修复。此外,code 在没有 ESLint 的编辑器中也能正常工作。

【问题讨论】:

$scope.IsVisible = !$scope.IsVisible; 【参考方案1】:

在我的例子中,我想根据一个对象或 null 的变量为我的布尔值分配一个值。

正如kylesimmonds 所说,可以使用双敲!! 运算符。

const myObject: SomeObjectType | null;
...

const isObjectExistent: boolean = !!myObject;
/*
  instead of:
  const isObjectExistent: boolean = myObject? true : false;
*/

检查:What is the !! (not not) operator in javascript?

【讨论】:

【参考方案2】:

试试好方法 =)。在这种情况下不需要使用语句。

$scope.IsVisible = !$scope.IsVisible;

【讨论】:

如果您像我一样需要检查 true 值,请使用双键:!!$scope.IsVisible

以上是关于错误在条件表达式中不必要地使用布尔文字 no-unneeded-ternary的主要内容,如果未能解决你的问题,请参考以下文章

为什么GWT wrap()方法不必要地迭代整个DOM?

SonarLint:删除不必要的布尔文字

在Angular中替换innerHTML不必要地关闭标签[重复]

错误:在预期条件的上下文中指定的非布尔类型的表达式

Anylogic:避免在占用块中不必要地执行进程

在预期条件的上下文中指定的非布尔类型的表达式,靠近 IDT 中的“)”错误