I'm using Chrome 70 and Chrome does add methods .flatMap
, .flatten
, .flat
. So my code does run as expected. Unfortunately, TypeScript doesn't like it.
// data.flatMap lint error
export const transformData = (data: any[]) => data.flatMap(abc => [
parentObj(abc),
...generateTasks(abc)
]);
The warning I got is TS2339: Property 'flatMap' does not exist on type 'any[]'.
I'm using Angular 6, which uses Typescript ~2.9.2, and I already include import 'core-js/es7/array';
in polyfills.ts
.
My guess is that there is no typing for these methods, and I did try to npm run -dev @types/array.prototype.flatmap
but still not solve.
` basically, so `flat` is not of type `Array`, but fo type `Array – Eric Burel Nov 29 '21 at 10:16` where S is the nested structure. I think you need to add a generic like `interface Array { flat(): Array }` or find a way to filter out array types from T.