ESLint 错误 no-unneeded-ternary

ESLint error no-unneeded-ternary

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 但它适用于布尔表达式,我无法弄清楚为什么它适用于我的代码...

当一个简单的 val || defaultVal 就可以时,你不需要三元组。

// Bad
foo(bar ? bar : 1);

// Good
foo(bar || 1);

这是他们在 Es-lint 中的说法