Node.js v10.xがジェネレーターなしでビルトインasync/awaitを使用するために必要なターゲット/ライブラリは誰でも知っていますか?ノード8では多く見られますが、ノード10では見られません。
Node.js現在10.0.0
、ES2018の100%がサポートされています。そのバージョン以降をターゲットにしていることがわかっている場合、最適な構成は次のようになります。
"module": "commonjs"
Node.jsはESモジュールを追加する方法に取り組んでいますが、今のところCommonJSに固執する必要があります。
"target": "es2018"
これは、ES2018の機能を備えたJavaScriptsyntaxを出力しても問題ないことをTypeScriptに伝えます。実際には、これは、例えばポリフィルを埋め込む代わりに、出力オブジェクトのrest/spreadプロパティとasync/await構文。
"lib": ["es2018"]
これにより、ES2018以前で導入された関数とプロパティを使用しても問題ないことがTypeScriptに通知されます。実際には、これは、たとえばPromise.prototype.finally
、Array.prototype.includes
およびString.prototype.padStart
。
したがって、完全な構成は次のようになります。
{
"compilerOptions": {
"lib": ["es2018"],
"module": "commonjs",
"target": "es2018"
}
}
Node.js 8を実行している場合、 Node.js 8の同様の回答はこちら
ノード8の推奨TypeScript構成 、--target ES2017
は、Node 8.10.0以降(Node 10を含む)でサポートされています。非同期関数を出力せずに出力に渡すだけで十分です。それらをジェネレータに変換します。