类型 any\[\] 上不存在 flatMap、flat、flatten

新手上路,请多包涵

我正在使用 Chrome 70,Chrome 确实添加了方法 .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 但仍然没有解决。

原文由 Azriz 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 1.7k
2 个回答

You should add es2019 or es2019.array to your --lib setting for TypeScript to recognize array.flat() and flatMap() .

例子:

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

以前它作为 esnextesnext.array 的一部分提供,但现在它正式成为 ES2019 的一部分。

原文由 Aaron Beall 发布,翻译遵循 CC BY-SA 4.0 许可协议

我尝试了大多数答案,但它们对我不起作用。开发环境:VScode

但这确实

npm i -D @types/node

原文由 Ahmed Essam ElDessouki 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进