web-dev-qa-db-fra.com

Comment utiliser la fonction générateur en tapuscrit

J'essaie d'utiliser la fonction de générateur dans TypeScript. Mais le compilateur jette une erreur

error TS2339: Property 'next' does not exist on type

Ci-dessous est un exemple le plus proche de mon code.

export default class GeneratorClass {
    constructor() {
        this.generator(10);
        this.generator.next();
    }
    *generator(count:number): Iterable<number | undefined> {
        while(true)
            yield count++;
    }   
}

Voici le lien du terrain de jeu pour le même

14
anandaravindan

La méthode next existe sur le générateur que la fonction retourne, pas sur la fonction du générateur elle-même.

export default class GeneratorClass {
    constructor() {
        const iterator = this.generator(10);
        iterator.next();
    }
    *generator(count:number): IterableIterator<number> {
        while(true)
            yield count++;
    }   
}
19
Bergi

Je voyais cette erreur car mon tsconfig.json visait es5.

J'ai simplement changé (extrait) de:

"target": "es5",
"lib": [
    "es5",
    "es2015.promise"
]

à:

"target": "es6",
"lib": [
    "es6"
]

et l'erreur a disparu.

Remarque: Pour VS Code, je devais recharger la fenêtre pour qu'IntelliSense reconnaisse le changement.

4
vossad01