web-dev-qa-db-ja.com

プロパティ「allSettled」はタイプ「PromiseConstructor」に存在しません。ts(2339)

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.jsonlibオプションに追加しました:

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をネイティブで使用することに興味があります。

10
slideshowp2

それはES2020でステージ4なので、ポリフィルがないとどこでも利用できるわけではありません。入力されて [〜#〜] ts [〜#〜] にマージされました。最新の@ types/nodeパッケージをインストールして、それがうまく機能するかどうかを確認してください。

アップデート:着陸すると、ライブラリにes2020.promiseが追加されるようです。

アップデート:npm i [email protected] woot woot!

0
Josh Wulf