2017-04-18 3 views
2

ES6에서 함수의 결과를 내보내려고합니다. 이 기능은 중요하지 않다 - 다음 예제는 작동 : SyntaxError: Unexpected token, expected , : 또한ES6 함수 결과 내보내기

export { 
    a: func(a), 
    b: func(b) 
} 

:

export { 
    func(a) as a, 
    func(b) as b 
} 

이있는 반면

const a = 'foo' 
const b = 'bar' 

export default { 
    a: func(a), 
    b: func(b) 
} 

오류 충돌 : const func = input => input

이 작동 이유를 설명해 주시겠습니까? This은 위의 경우를 다루지 않는 것 같습니다.

+0

원본 코드를 포함 할 수 있습니까? 예를 들어서 잘못 사용한 점은 없습니다. 예를 들어, transpiler를 사용하고 있습니까? – mikeapr4

답변

4

당신은

const aArg = 'foo' 
const bArg = 'bar' 

export const a = func(aArg); 
export const b = func(bArg); 

명명 수출은 수출 변수 이름을 필요로 할 수있는 그들은 임의의 표현 결과를 내보낼 수 없습니다.

+0

감사합니다. 내가 뭘 할 수 있는지는 알지만, 내가 할 수없는 것을 이해하지 못합니다. 'func (a)'의 결과를'func (a)'의 이름으로주는 것과 같은 이유는 무엇입니까? –

+0

'X as Y'는 구체적으로'variable name as variablename'입니다. 따라서 함수를 호출 할 수 없습니다. 나는 그것이 기술적으로 허용 될 수 있다고 생각하지만, 보통 이미 존재하는 변수를 내보내고 있기 때문에 매우 자주 올 것 같지 않습니다. – loganfsmyth

+0

당신은 그것에 대한 참조가 있습니까? –

0
export default ... 

당신은 등, 클래스, 기능, 당신이 할당해야합니다, 그래서 당신은 등 많은 개체, 클래스, 함수를 내보낼

export (Object, Class, Function) ... 

를 하나의 개체를 내보낼 이름.

첫 번째 예는 학교에서 가르치고 학생이 한 명있는 경우와 조금 비슷합니다. 그가 유일한 학생이기 때문에 그 학생이 누구이며 어떻게 부르는 지 알 것입니다. 두 번째 예제는 많은 학생들이있는 수업을 가르치는 것과 같지만 올바른 학생에게 전화를 걸기 위해 어떤 유형의 이름을 원하게됩니다.