After changes made for the v2.0.0 release, the type being returned for [Symbol.iterator]
included undefined
in the type union for the iterator result. This caused users to have to cast iteration results to their intended type:
for (person of new PersonIterator(people)) {
let person: Person = person as Person;
}
Otherwise, TypeScript would complain that Person | undefined
could not be assigned to a variable of type Person
.