ES6 / 7에서 Arrow 함수를 내보낼 수 있습니까?


101

아래 내보내기 문은 구문 오류를 제공합니다.

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

왜 ?

명명 된 함수 만 내보낼 수 있습니다.

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

그 이유는 무엇입니까?


4
오류가 실제로 무엇을 말합니까?
Andy

2
여기서 잘 작동합니다 : astexplorer.net/#/0fv5UXttsP .
Felix Kling 16.


1
구문 오류는 무엇입니까?
omarjmh

1
기본 내보내기의 이름을 지정할 수 없습니다.
펠릭스 클링

답변:


165

ES6 / 7에서 Arrow 함수를 내보낼 수 있습니까?

예. export내보내려는 값은 신경 쓰지 않습니다.

아래의 export 문은 구문 오류를 제공합니다. 이유는 무엇입니까?

당신은 할 수 없습니다 기본 수출을 하고 그것에게주는 이름 ( "기본값은"이미 수출의 이름입니다).

어느 쪽이든

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

또는

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

4
아래는 어떻게 작동하고 기본 내보내기 hello = () => {console.log ( "why the downvote")}
jozzy

3
x = y의 값으로 확인되는 할당 표현식입니다 y. 변수 선언이 아닙니다. x = y식을 넣을 수있는 곳에 넣을 수 있습니다 . 참고 :x 사전에 정의되지 않은 경우 엄격 모드에서 발생 합니다.
Felix Kling

2
정기 수출은 어떻습니까? 다음과 같이 할 수 export () => {/*body*/} as getUsers;있습니까? 아니면 먼저 정의한 다음 내 보내야합니까?
Tomasz Mularczyk

44
@Tomasz :export const getUser = () => {...};
펠릭스 클링

3
@Burrich : 예상대로 사용할 수있는 한 함수가 어떻게 생성되었는지는 중요하지 않습니다.
Felix Kling

17

기본 내보내기를 원하지 않는 경우 다음 구문으로 명명 된 함수를 내보낼 수 있습니다.

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

당신 그래서 교체 export function yourFunctionName () {와 함께 export const yourFunctionName = () => . 문자 길이는 동일하지만이 섹션 내에서 오타를 만들 가능성이 높습니다 = () =>. 솔직히, 나에게 그것은 덜 읽기 쉽고 더 많은 일을 느낀다 :)
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.