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[]'.
By the way I'm using Angular 6
, which use 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.
You can extend the global array interface while you wait for stability, at which point it will be added to the default library.
You should add
es2019
ores2019.array
to your--lib
setting for TypeScript to recognizearray.flat()
andflatMap()
.Example:
Previously this was available as part of
esnext
oresnext.array
, but it's now officially part of ES2019.