Как использовать функцию генератора в typescript
Я пытаюсь использовать функцию генератора в машинописи. Но компилятор выдает ошибку
error TS2339: Property 'next' does not exist on type
Ниже приведен наиболее близкий пример моего кода.
export default class GeneratorClass {
constructor() {
this.generator(10);
this.generator.next();
}
*generator(count:number): Iterable<number | undefined> {
while(true)
yield count++;
}
}
{
while(true)
yield count++;
}
} rel=noreferrer>Вот ссылка на игровую площадку для того же
Ответы
Ответ 1
В генераторе существует метод next
, который возвращает функция, а не сама функция генератора.
export default class GeneratorClass {
constructor() {
const iterator = this.generator(10);
iterator.next();
}
*generator(count:number): IterableIterator<number> {
while(true)
yield count++;
}
}
Ответ 2
Я видел эту ошибку, потому что мой tsconfig.json был нацелен на es5
.
Я просто изменил (выдернул) из:
"target": "es5",
"lib": [
"es5",
"es2015.promise"
]
в
"target": "es6",
"lib": [
"es6"
]
и ошибка исчезла.
Примечание. Для кода VS мне нужно перезагрузить окно для IntelliSense, чтобы распознать изменения.
Ответ 3
console.log(function.constructor.name)
//Функция
изменил tsconfig.json на target: esnext
console.log(function.constructor.name)
//GeneratorFunction
спасибо @vossad01