ESlint предупреждает о ключевом слове функции в анонимном и не позволяет присваивать аргументы в функции - PullRequest
0 голосов
/ 08 февраля 2019

У меня есть код для переименования ключей объекта, доступных со мной, используя преобразование lodash:

const replaceKeysDeep = (obj, keysMap) => { 
  return transform(obj, function(result, value, key){
    const currentKey = keysMap[key] || key;
    result[currentKey] = isObject(value) ? replaceKeysDeep(value, keysMap) : value;
  });
};

У меня была вышеописанная реализация, измененная на

const replaceKeysDeep = (obj, keysMap) => { 
  return transform(obj, (result, value, key) => {
    const currentKey = keysMap[key] || key;
    result[currentKey] = isObject(value) ? replaceKeysDeep(value, keysMap) : value;
  });
};
const newKeys = {
          abs: 'myname',
          tyu: 'yourname'
};
const someObjectContainingKeys = {
          abs: 'something',
          tyu: 'somethingelse'
};
const finalTimePointCalc = replaceKeysDeep(someObjectContainingKeys, newKeys);

реализация измененапотому что eslint запрашивал ключевое слово "function", но теперь он запрашивает у меня присвоение свойству параметра функции

Здесь я не хочу подавлять предупреждения ESLINT, но получить его правильно для выполнения.

Пожалуйста, предложите

1 Ответ

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

После просмотра исходного кода (trasnform() звонки baseForOwn(), которые на самом деле baseFor(), которые генерируются createBaseFor()) Я полагаю, что нет никаких шансов удовлетворить оба требования (потребляя transform() Лодаша для удобства чтения и удовлетворить no-param-reassign Эслинта).

В отличие от Array.prototype.reduce transform()не позволяет вам возвращать аккумулятор явно (вы можете увидеть его в createBaseFor() коде).

Таким образом, есть только несколько решений: либо напишите свой собственный код для transform().Или вы можете подавить правило eslint для каждой строки / для каждого файла / глобального уровня, чтобы разрешить изменение реквизитов аргументов функции с помощью props: false (подробности см. no-param-reassign docs )

...