私は活字体は予想通り、現代のブラウザで動作している、正しく次の発電機ループをコンパイルするために取得しようとしています:ジェネレータ `
/** Should print "x= 1 y= 2" **/
function* gen() { yield [1, 2] }
for (const [x, y] of gen()) { console.log("x=", x, "y=", y) }
しかし、それをして、実行した後Typescriptが失敗します。上記をthe Typescript Playgroundに置くと、失敗が示されます。つまり、for-of
は配列の反復ループに変換されますが、ジェネレータはオブジェクトを返しています。
Typescriptが壊れているようですが、これは既知の問題ですか?私はhttps://github.com/Microsoft/TypeScriptにそれを見ませんでした。
どのような最善の回避策ですか?ジェネレータ機能でArray.from
を使用すると、私は最も一貫していると私に襲いかかりますか?
typecriptをそのままコードに残しておきたい場合は、_ "target": "es6" _ –
@AlekseyLのコンパイラオプションでターゲットとしてes6を指定できます。その目的は、Knockout.jsライブラリのES3互換性です。 –
プレイグランドであなたのサンプルを実行すると、実際にはエラーが発生します。「タイプ 'IterableIterator'は配列型でも文字列型でもありません。 https://www.typescriptlang.org/docs/handbook/iterators-and-generators.html#targeting-es5-and-es3 –
str