ESLint no-undef для функции ES6 с именованными аргументами - PullRequest
0 голосов
/ 19 февраля 2019

У меня есть функция, определенная следующим образом:

const generate = (report={}, buffer=false) => {
  // do stuff
}

Обратите внимание, что оба параметра имеют значения по умолчанию.

Когда я вызываю эту функцию и называю аргумент, я получаю не-undef Ошибка ESLint.

generate(buffer = true);

ESLint говорит, что «буфер» не определен.Он не обнаруживает, что это именованный аргумент.Кто-нибудь знает, как изменить мой .eslintrc для учета именованных аргументов.Я ничего не могу найти в сети.

Заранее спасибо!

1 Ответ

0 голосов
/ 19 февраля 2019

То, что вы ожидаете от этого кода, не существует в Javascript.

Вы получаете ошибку ESLint no-undef, потому что buffer никогда не объявляется.Поскольку в JS нет именованных параметров, вы можете просто вызвать generate(true).

Хотя это фактически приведет к тому, что report будет равно true, а buffer будет установлено в значение по умолчанию, которое выустановили на false.

Чтобы достичь чего-то более близкого к тому, что вы ищете, вы можете переключать порядки переменных:

generate(buffer = false, report = {}) И тогда вызов generate(true) вызовет вызовс параметрами: buffer = true и report = {}.

Надеюсь, что имеет смысл.

Для дальнейшего чтения я рекомендую: http://2ality.com/2011/11/keyword-parameters.html

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...