Eslint:在条件表达式中不必要地使用布尔文字

Eslint: Unnecessary use of boolean literals in conditional expression

我有一个来自 Web API 请求的字符串变量。该变量可能包含字符串 "true" 或字符串 "false",或者为空。

我将此值从字符串转换为真正的布尔值,因为 'true' != true:

[
  request.body.truncateEntities === 'true' ? true : false,
  request.body.truncateDomains === 'true' ? true : false,
]

这两行都会触发 eslint 警告:

Unnecessary use of boolean literals in conditional expression.

真的有更好的方法来编写这段代码吗?

我正在使用 eslint 2.0(Visual Studio 中内置的那个)。

是的,你可以直接写:

[
  request.body.truncateEntities === 'true',
  request.body.truncateDomains === 'true',
]

因为比较表达式(如 request.body.truncateEntities === 'true')无论如何都会计算为布尔值,所以不需要三元条件表达式。