Je veux créer un itérateur pour mon tableau en TypeScript, Comment dois-je corriger mon code pour ne pas avoir d'erreur de transpiration? Par génériques ou alors?TypeScript et itérateurs personnalisés
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());
Quelle erreur de compilation obtenez-vous ?! – Bergi
erreur: Tapez '() => {suivant:() => {valeur: nombre | indéfini; done: booléen; } } 'n'est pas assignable au type'() => IterableIterator '. Type '{suivant:() => {valeur: nombre | indéfini; done: booléen; } } 'n'est pas assignable au type' IterableIterator '. La propriété '[Symbol.iterator]' est manquante dans le type '{next:() => {value: number | indéfini; done: booléen; } } '. –
Crova
Le dernier semble être que votre itérateur devrait être itérable lui-même - essayez d'ajouter '[Symbol.iterator]() {return this}' comme méthode à côté de 'next'. – Bergi