TypeScriptで配列のイテレータを作成したいのですが、コードを修正して蒸散エラーを発生させないでください。ジェネリックかそれとも?そのようTypeScriptとカスタムイテレータ
let array4 = [10, 20, 30];
array4[Symbol.iterator] = function() {
let i = 0;
return {
next: function() {
i++;
return {
value: i < 4 ? array4[i - 1] : undefined,
done: i >= 4 ? true : false
};
}
};
};
let it4 = array4[Symbol.iterator]();
console.log(it4.next());
console.log(it4.next());
console.log(it4.next());
console.log(it4.next());
どのようなコンパイルエラーが発生していますか? – Bergi
エラー: '()=> {next:()=> {value:number |未定義; done:ブール値。 }; } 'は型'()=> IterableIterator 'に割り当てられません。 タイプ '{next:()=> {value:number |未定義; done:ブール値。 }; } 'は' IterableIterator '型に割り当てられません。 プロパティ '[記号.iterator]'がタイプ '{next:()=> {value:number |未定義; done:ブール値。 }; } '。 –
Crova
最後のものはあなたのイテレータがiterableでなければならないと思われます - '[Symbol.iterator](){return this}'を 'next'の次のメソッドとして追加してみてください。 – Bergi