Я не уверен, но мне кажется, что typescript ждет интерфейса
IterableIteratorinterface IterableIterator<T> extends Iterator<T> {
[Symbol.iterator](): IterableIterator<T>;
}
Попробуйте так
class Node {
public id: number;
constructor(id: number){
this.id = id;
}
}
class List {
public nodeAll: Node[];
constructor(nodeAll: Node[]){
this.nodeAll = nodeAll;
}
iterator(): IterableIterator<Node> {
return this.nodeAll[Symbol.iterator]();
}
}
let list = new List([new Node(0), new Node(1), new Node(2)]);
let iterator: IterableIterator<Node> = list.iterator();
for(let node of iterator){
console.log(node.id);
}