TypeScriptで Promise.allSettled APIを使用しようとしています。ここにコード:
server.test.ts
:
it('should partial success if QPS > 50', async () => {
const requests: any[] = [];
for (let i = 0; i < 51; i++) {
requests.Push(rp('http://localhost:3000/place'));
}
await Promise.allSettled(requests);
// ...
});
しかし、TSCはエラーをスローします。
プロパティ「allSettled」はタイプ「PromiseConstructor」に存在しません。ts(2339)
私はすでにこれらの値をtsconfig.json
のlib
オプションに追加しました:
tsconfig.json
:
{
"compilerOptions": {
/* Basic Options */
"target": "ES2015" /* Specify ECMAScript target version: 'ES3' (default), 'ES5', 'ES2015', 'ES2016', 'ES2017','ES2018' or 'ESNEXT'. */,
"module": "commonjs" /* Specify module code generation: 'none', 'commonjs', 'AMD', 'system', 'umd', 'es2015', or 'ESNext'. */,
"lib": [
"ES2015",
"ES2016",
"ES2017",
"ES2018",
"ES2019",
"ES2020",
"ESNext"
]
// ...
}
TypeScriptバージョン:"TypeScript": "^3.7.3"
それで、どうすればこれを解決できますか?代替モジュールを使用できることはわかっていますが、TypeScriptをネイティブで使用することに興味があります。
それはES2020でステージ4なので、ポリフィルがないとどこでも利用できるわけではありません。入力されて [〜#〜] ts [〜#〜] にマージされました。最新の@ types/nodeパッケージをインストールして、それがうまく機能するかどうかを確認してください。
アップデート:着陸すると、ライブラリにes2020.promise
が追加されるようです。
アップデート:npm i [email protected]
woot woot!