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++;
}
}
next
メソッドは、ジェネレーター関数自体ではなく、関数が返すジェネレーターに存在します。
export default class GeneratorClass {
constructor() {
const iterator = this.generator(10);
iterator.next();
}
*generator(count:number): IterableIterator<number> {
while(true)
yield count++;
}
}
tsconfig.jsonがes5
をターゲットとしていたため、このエラーが表示されていました。
私は単に以下から変更(抜粋)しました:
"target": "es5",
"lib": [
"es5",
"es2015.promise"
]
に:
"target": "es6",
"lib": [
"es6"
]
エラーはなくなりました。
注:VS Codeの場合、IntelliSenseが変更を認識するためにウィンドウをリロードする必要がありました。