Open sangwook-kim opened 7 years ago
interface Iterator<T> { next(value?: any): IteratorResult<T>; return?(value?: any): IteratorResult<T>; throw?(e?: any): IteratorResult<T>; }
위를 구현한 것에 대하여 Array의 element나 Map의 Key 값들과 같이 동기적으로 iterate하는데 유용함. Iterator 객체를 반환하는 Symbol.iterator 메서드를 가지고 있으면 Iterable 하다 할 수 있다. 또한, Iterator protocol은 for..of 연산자와 spread 연산자를 지원함.
Iterator
Symbol.iterator
for..of
Iterator 인터페이스와 yield 키워드를 사용해서, ES2015 Generator를 지원함. 참고 : Generator란 egghead
yield
Generator
--downlevelIteration 플래그를 사용하면 타겟 코드가 ES3/ES5인 경우에도 이들을 사용할 수 있음. [Symbol.iterator]()메서드가 없는 경우 synthetic array iterator를 만들어 사용함
--downlevelIteration
[Symbol.iterator]()
synthetic array iterator
Iterator
위를 구현한 것에 대하여 Array의 element나 Map의 Key 값들과 같이 동기적으로 iterate하는데 유용함.
Iterator
객체를 반환하는Symbol.iterator
메서드를 가지고 있으면 Iterable 하다 할 수 있다. 또한, Iterator protocol은for..of
연산자와 spread 연산자를 지원함.Generator
Iterator
인터페이스와yield
키워드를 사용해서, ES2015Generator
를 지원함. 참고 : Generator란 eggheadES3/ES5 지원
--downlevelIteration
플래그를 사용하면 타겟 코드가 ES3/ES5인 경우에도 이들을 사용할 수 있음.[Symbol.iterator]()
메서드가 없는 경우synthetic array iterator
를 만들어 사용함