【问题标题】:ESLint error no-unneeded-ternaryESLint 错误 no-unneeded-ternary
【发布时间】:2016-06-12 15:44:41
【问题描述】:

ESLint 在我的 JS 模块中告诉我这个错误消息:error no-unneeded-ternary Unnecessary use of conditional expression for default assignment

错误出现在return 语句return val ? val : defaultVal; 上的get 方法中?

import ls from 'local-storage';

export default {
    get(key, defaultVal = null) {
        var val = ls(key);
        return val ? val : defaultVal;
    },

    set(key, val) {
        return ls(key, val);
    },

    remove(key) {
        return ls.remove(key);
    },
};

知道为什么我会收到此错误消息吗?我在 ESLint 的网站上找到了一些关于此错误消息 here 的资源,但它适用于布尔表达式,我不知道为什么这适用于我的代码...

【问题讨论】:

    标签: javascript eslint


    【解决方案1】:
    // Bad
    foo(bar ? bar : 1);
    
    // Good
    foo(bar || 1);
    

    Es-lint 是这样说的

    【讨论】:

      【解决方案2】:

      当一个简单的val || defaultVal 就行时,您不需要三元组。

      【讨论】:

      • @UmakantPatil 这些不等价。
      • @UmakantPatil 一旦你让他们真正做同样的事情,差异是(a)浏览器相关的,和(b)在 1-3% 之内。它也更短更清晰;除非您处于非常紧凑的游戏循环或类似情况中,否则这是毫无意义的微优化。无论如何,最初的问题是关于 ESLint 警告,它默认在默认值分配中标记三元组。 ¯(°_o)/¯
      • 哦,对了。我的错。有一次我没有做作业。谢谢!
      猜你喜欢
      • 2017-07-31
      • 2020-08-19
      • 2017-08-25
      • 2019-10-30
      • 2018-06-27
      • 2020-10-01
      • 2015-12-31
      • 2021-07-08
      • 2017-10-29
      相关资源
      最近更新 更多