1. ホーム
  2. アンギュラー

[解決済み】TypescriptのflatMap, flat, flattenはany[]型には存在しない。]

2022-04-05 19:18:45

質問

私はクローム70を使用していますが、クロームはメソッドを追加します。 .flatMap, .flatten, .flat . だから、私のコードは期待通りに実行されます。残念ながら、Typescriptはこれを好まない。

// data.flatMap lint error
export const transformData = (data: any[]) => data.flatMap(abc => [
   parentObj(abc),
   ...generateTasks(abc)
]);

という警告が表示されました。 TS2339: Property 'flatMap' does not exist on type 'any[]'.

ちなみに私は Angular 6 を使用しています。 Typescript ~2.9.2 で、すでにインクルードしている import 'core-js/es7/array';polyfills.ts .

私の推測では、これらのメソッドに型付けがないのではと思い、試しに npm run -dev @types/array.prototype.flatmap が、まだ解決していません。

どのように解決するのですか?

を追加する必要があります。 es2019 または es2019.array をあなたの --lib の設定により、TypeScript が array.flat()flatMap() .

{
  "compilerOptions": {
    "target": "es5",
    "lib": [
      "es2019"
    ]
  }
}

以前は、これは esnext または esnext.array が、正式に ES2019 の一部となりました。