Можно ли экспортировать стрелочные функции в ES6 / 7?


102

Приведенный ниже оператор экспорта дает синтаксическую ошибку.

export default const hello = () => console.log("say hello")

Зачем ?

Я могу экспортировать только именованные функции

export function hello() {
  console.log("hello")
}

Какова причина?


4
Что на самом деле говорит ошибка?
— Энди

2
Здесь отлично работает: astexplorer.net/#/0fv5UXttsP .
— Феликс Клинг,


1
в чем ошибка синтаксиса?
— omarjmh

1
Вы не можете назвать экспорт по умолчанию.
— Феликс Клинг,

Ответы:


165

Можно ли экспортировать стрелочные функции в ES6 / 7?

Да. exportне заботится о стоимости, которую вы хотите экспортировать.

Оператор экспорта ниже дает синтаксическую ошибку ... почему?

Вы не можете иметь экспорт по умолчанию и дать ему имя («default» уже является именем экспорта).

Либо сделай

export default () => console.log("say hello");

или

const hello = () => console.log("say hello");
export default hello;

4
Как работает приведенное ниже, а затем экспортировать по умолчанию hello = () => {console.log ("почему отрицательный голос")}
— jozzy

3
x = y- это выражение присваивания, которое разрешается в значение y. Это не объявление переменной. Вы можете поставить x = yлюбое место, где можете выразить выражение. Примечание: это вызовет строгий режим, если xон не определен заранее.
— Феликс Клинг,

2
как насчет регулярного экспорта? можно ли сделать что-то вроде export () => {/*body*/} as getUsers;:? или мне нужно сначала определить его, а затем экспортировать?
— Tomasz

44
@Tomasz:export const getUser = () => {...};
— Феликс Клинг,

3
@Burrich: Не имеет значения, как была создана функция, главное, чтобы ее можно было использовать так, как предполагалось.
— Феликс Клинг

18

Если вам не нужен экспорт по умолчанию, вы можете просто экспортировать именованную функцию с помощью этого синтаксиса:

export const yourFunctionName = () => console.log("say hello");

Итак, вы замените export function yourFunctionName () {на export const yourFunctionName = () => . Длина символов такая же, но в этом разделе высока вероятность опечатки = () =>. Честно говоря, мне кажется, что он менее
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.