52719


# 環境

  * Node.js v10.10.0
  * ESLint v5.13.0

# 質問

以下のコードの名前付き引数min, maxで、Errorが発生します。

[code]

    const randomIndex = random.int(min=0, max=10);
    
[/code]

[code]

    error  'min' is not defined  no-undef 
    error  'max' is not defined  no-undef 
    
[/code]

どのような設定を行えば、警告が消えますか？

# .eslintrc.js

[code]

    module.exports = {
        "env": {
            "es6": true,
            "node": true
        },
        "extends": "eslint:recommended",
        "parserOptions": {
            "ecmaVersion": 2018,
            "sourceType": "module"
        },
        "rules": {
            "indent": [
                "error",
                4
            ],
            "linebreak-style": [
                "error",
                "unix"
            ],
            "quotes": [
                "error",
                "double"
            ],
            "semi": [
                "error",
                "always"
            ],
            "no-console": 0
        }
    };
    
[/code]

# 参考

<https://eslint.org/docs/rules/no-undef>


CC BY-SA 4.0
2019-02-12T03:43:38.523
52716
2023-09-03T10:07:29.403
2023-09-03T10:07:29.403
19110
19524
question
javascript eslint
ESLintで名前付き引数でErrorが出ないようにする方法


単純にJSに名前付き引数という構文はないためエラーになっているのかと思います。  
元のコードは以下のコードのように解釈されます。

[code]

    min = 0
    max = 10
    const randomIndex = random.int(min,max);
    
[/code]

min,maxは変数として解釈され、その変数にvar(またはlet,const)がついていないためes-lintがエラーを吐いています。

単純にエラーを消したいだけなら

[code]

    const randomIndex = random.int(0,10);
    
[/code]

と書けば解決します。

別の方法で名前付き引数のような書き方をしたいのであれば、引数をObjectで受け取る方法があります。  
その場合randomInt()側も修正が必要です。

[code]

    const randomInt = ({min,max})=>{
      // randomIntの処理
    }
    const randomIndex = randomInt({min:0,max:10});
    
[/code]


CC BY-SA 4.0
2019-02-12T04:29:48.893
52719
2019-02-12T04:29:48.893
2475
52716
answer