NodeJS双求反三元运算符

Joh*_*Doe 1 javascript object ternary-operator node.js ecmascript-6

我在下面显示的NodeJS中使用三元运算符

let err = {a: 10, message: 0}
const error = !!err.message ? err.message : err;
Run Code Online (Sandbox Code Playgroud)

但是上面的代码为双重否定显示eslint错误如何解决呢?下面的替代方法与上面相同

const error = err.message ? err.message : err;
Run Code Online (Sandbox Code Playgroud)

Jac*_*ord 6

实际不需要使用!!-此代码是您想要的:

const error = err.message ? err.message : err;
Run Code Online (Sandbox Code Playgroud)

如果您真的想检查布尔值而不是纯值:

const error = Boolean(err.message) ? err.message : err;
Run Code Online (Sandbox Code Playgroud)

还要注意,您正在执行的操作(如果err.message是事实,使用它或使用err)是逻辑OR运算符的确切用例||

const err = err.message || err;
Run Code Online (Sandbox Code Playgroud)


Cer*_*nce 5

如果需要,可以完全避免使用条件运算符-如果err.message为false,则只需替换为err

const error = err.message || err;
Run Code Online (Sandbox Code Playgroud)