“stringValues"已定义但从未使用过no-unused-vars

"stringValues" is defined but never used no-unused-vars

本文关键字:未使用 no-unused-vars 定义 stringValues quot      更新时间:2023-09-26

我是JS的新手,我正试图在另一个函数内调用函数。当我尝试它时,我得到了lint错误。—stringValues在数字之间插入逗号以显示正确的格式,对于1000它显示为1,000,对于10000它显示为10,000

 return Number(unitsOfNumbers.join('')).stringValues();
    提供我的代码和错误如下。
错误:

"stringValues" is defined but never used  no-unused-vars
代码:

  import {differentCountriesCurrency} from 'sports-input-utils/lib/formatting';
    Object.defineProperty(exports, '__esModule', {
        value: true
    });
    exports.appleBrowser = appleBrowser;
    exports.appleBrowserWithDecimals = appleBrowserWithDecimals;

    function stringValues(x, sep, grp) {
        var sx = (''+x).split('.'), s = '', i, j;
        sep || (sep = ','); // default seperator
        grp || grp === 0 || (grp = 3); // default grouping
        i = sx[0].length;
        while (i > grp) {
            j = i - grp;
            s = sep + sx[0].slice(j, i) + s;
            i = j;
        }
        s = sx[0].slice(0, i) + s;
        sx[0] = s;
        return sx.join('.');
    }
    function appleBrowser(value, parm) {
        var unitsOfNumbers;
        if (!value) {
            return value;
        }
        // extract unitsOfNumbers. if no unitsOfNumbers, fill in a zero.
        unitsOfNumbers = value.match(/'d/g) || ['0'];
        return Number(unitsOfNumbers.join('')).stringValues();
    }
    function appleBrowserWithDecimals(value, parm) {
        var unitsOfNumbers;
        if (!value) {
            return value;
        }
        // extract unitsOfNumbers. if no unitsOfNumbers, fill in a zero.
        unitsOfNumbers = value.match(/'d/g) || ['0'];
        // zero-pad a one-digit input
        if (unitsOfNumbers.length === 1) {
            unitsOfNumbers.unshift('0');
        }
        // add a decimal point
        unitsOfNumbers.splice(unitsOfNumbers.length - 2, 0, '.');
        return Number(unitsOfNumbers.join('')).stringValues();
    }
    //# sourceMappingURL=formatting.js.map
    exports.limitMaximumLength = limitMaximumLength;
    function limitMaximumLength(value, parm) {
        if (value.length < parm) {
            return value;
        } else {
            return value.substring(0, parm);
        }
    }
    exports.differentCountriesCurrencyWithMaxLen = differentCountriesCurrencyWithMaxLen;
    function differentCountriesCurrencyWithMaxLen (value) {
        var isSafari;
        return differentCountriesCurrency(limitMaximumLength(value, 7));
        isSafari = navigator.userAgent.indexOf("Safari") > -1;
        if (isSafari) {
            return appleBrowser(limitMaximumLength(value, 7));
        }
    }

不用担心其他检查错误或检查任何关于逻辑(没有检查它是否做你想要的),我可以删除no-unused-vars错误如下:

import {differentCountriesCurrency} from 'sports-input-utils/lib/formatting';
Object.defineProperty(exports, '__esModule', {
    value: true
});
function stringValues(x, sep, grp) {
    var sx = (''+x).split('.'), s = '', i, j;
    sep || (sep = ','); // default seperator
    grp || grp === 0 || (grp = 3); // default grouping
    i = sx[0].length;
    while (i > grp) {
        j = i - grp;
        s = sep + sx[0].slice(j, i) + s;
        i = j;
    }
    s = sx[0].slice(0, i) + s;
    sx[0] = s;
    return sx.join('.');
};
exports.appleBrowser = function (value, parm) {
    var unitsOfNumbers;
    if (!value) {
        return value;
    }
    // extract unitsOfNumbers. if no unitsOfNumbers, fill in a zero.
    unitsOfNumbers = value.match(/'d/g) || ['0'];
    return stringValues(Number(unitsOfNumbers.join('')));
};
exports.appleBrowserWithDecimals = function (value, parm) {
    var unitsOfNumbers;
    if (!value) {
        return value;
    }
    // extract unitsOfNumbers. if no unitsOfNumbers, fill in a zero.
    unitsOfNumbers = value.match(/'d/g) || ['0'];
    // zero-pad a one-digit input
    if (unitsOfNumbers.length === 1) {
        unitsOfNumbers.unshift('0');
    }
    // add a decimal point
    unitsOfNumbers.splice(unitsOfNumbers.length - 2, 0, '.');
    return stringValues(Number(unitsOfNumbers.join('')));
};
exports.limitMaximumLength = function (value, parm) {
    if (value.length < parm) {
        return value;
    } else {
        return value.substring(0, parm);
    }
};
exports.differentCountriesCurrencyWithMaxLen = function (value) {
    var isSafari;
    return differentCountriesCurrency(limitMaximumLength(value, 7)); 
    // ^^^ There's no way this ^^^ is what you want. 
    // The rest of the function is always ignored. You've already returned.
    isSafari = navigator.userAgent.indexOf("Safari") > -1;
    if (isSafari) {
        return appleBrowser(limitMaximumLength(value, 7));
    }
};

为了消除错误,我完全按照@JosephYoung说的做了。你没有把stringValues加到Number返回的值上。

所以不要这样做:

return Number(unitsOfNumbers.join('')).stringValues();

假设存在另一个stringValues作为Number返回值的函数属性。您的函数stringValues存在于全局作用域,并且从未被调用。

调用你声明的对象,你可以这样做:

return stringValues(Number(unitsOfNumbers.join('')));

需要注意的一个重要的可读性问题是:不要像这样…

exports.limitMaximumLength = limitMaximumLength;
function limitMaximumLength(value, parm) {

…继续,把赋值放到一行,像这样…

exports.limitMaximumLength = function (value, parm) {

让你更容易知道你导出的是什么,什么是"私有"实用程序函数。