読者です 読者をやめる 読者になる 読者になる

abcdefGets

ゲッツ!

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でも使えるようになってよかったね。