typescript 2.3 RC
typescript 2.3 rcがアナウンスされた
主な変更点は以下の通り
–strictオプションの追加
以下の型チェックオプションを有効にする
- –noImplicitAny
- –strictNullChecks
- –noImplicitThis
- –alwaysStrict
以下の様に部分的にOFFにもできる
{ "compilerOptions": { "strict": true, "noImplicitThis": false } }
generateor、iteratorのES3、ES5対応
--downlevelIteration
フラグをONにすることで、
generatorとiteratorがES3、ES5共にトランスパイルできるようになった。
Async generators & iterators
ES Proposalのasync iteratorとasync generatorに対応した。
async iteratorの構文
for await (let item of items) { /*...*/ }
async generatorの構文
async function* asyncGenName() { /*...*/ }
ただし、Async generatorとAsync iteratorを使うためには、
Symbol.asyncIterator
が必要なので、以下のようにして、polyfilを作る必要がある。
(Symbol as any).asyncIterator = Symbol.asyncIterator || Symbol.from("Symbol.asyncIterator");
か
(Symbol as any).asyncIterator = Symbol.asyncIterator || "__@@asyncIterator__";
まとめ
遂に(async) generator、iteratorがES3、ES5でも使えるようになってよかったね。