2016-06-05 4 views
3

TypeScript 1.8을 사용하는 동안 이상한 점을 발견했습니다. 나는 ES5를 목표로 삼고 있으며 비동기/대기를 사용하려고했습니다. 나는 그것이 roadmap for 2.0에 대한 지원을 알고 있지만, 이미 부분적으로 작동하는 것 같습니다?ES5를 대상으로하는 비동기 함수

예를 들어,이 컴파일되지 않습니다 :

이 오류를 잘 꽤 명확 error TS1311: Async functions are only available when targeting ECMAScript 6 and higher.입니다
module MyModule { 
    async function myFunction() { ... } 
} 

?

그러나,이 컴파일 수행하고 잘 작동하는 것 같다 : 이것은 나에게 이해가되지 않습니다

module MyModule { 
    myFunction = async function() { ... } 
} 

. 후자의 문법은 왜 잘 작동합니까? 전자는 컴파일을 거부합니다. 이 두 구문에 미묘한 차이가 있습니까?

+1

TypeScript의 오류보고에서 나타나는 단점과 비슷합니다. 두 조각 모두 ES6 생성기로 JavaScript 파일을 출력하므로 둘 다 실제로 ES5에서 작동하지 않습니다. –

+0

@MattiasBuelens 엔진이 ES5로 엄격하게 제한되면 엔진이 작동하지 않습니다. Node.js뿐만 아니라 많은 최신 브라우저에는 적어도 부분적인 ES6 지원이 있습니다. 필자의 경우 ES6를 타겟팅하면 다른 (지원되지 않는) 것들도 사용된다는 것을 의미하므로 매우 유용했습니다. – Thorarin

+1

그들은 2.1 이정표로 옮겼습니다. –

답변