Функция стрелки должна всегда возвращать значение? - PullRequest
0 голосов
/ 14 декабря 2018

Много раз при использовании Eslitn или других инструментов для рисования я получал ошибку, подобную этой:

Err: // Expected to return a value at the end of arrow function 

Всегда ли функции стрелок должны возвращать значение?Если функция стрелки должна возвращать значение, в чем причина этого?

Например, в этом конкретном фрагменте кода мне не нужно ничего возвращать, если условие не выполнено.Во всяком случае, мой линтер дает мне указанную ошибку.

const getCookie = name => {
  const value = `; ${document.cookie}`;
  const parts = value.split(`; ${name}=`);
  if (parts.length == 2)
    return parts
      .pop()
      .split(';')
      .shift();
};

Ответы [ 3 ]

0 голосов
/ 14 декабря 2018

Нет, функции (стрелки) не должны ничего возвращать, но когда функция не должна считаться недействительной (т. Е. Ожидается возвращаемое значение), хорошей практикой является возврат из каждого пути / возвращение какого-либо значения по умолчанию, еслилюбой другой путь терпит неудачу.

const getCookie = name => {
  const value = `; ${document.cookie}`;
  const parts = value.split(`; ${name}=`);
  if (parts.length == 2) {
    return parts
      .pop()
      .split(';')
      .shift();
  }

  // default return, for example:
  return false;
};
0 голосов
/ 14 декабря 2018

Нет.Но имейте в виду, что даже если вы не напишите возврат, функция автоматически вернет undefine.

0 голосов
/ 14 декабря 2018

Функции стрелок не должны возвращать значение.Выражения должны возвращать значения, а выражения - нет.Попробуйте другой линтер, возможно.

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