angular - TypScript flatMap, flat, flatten no existe en type any
typescript (2)
Estoy usando Chrome 70 y Chrome agrega métodos
.flatMap, .flatten, .flat
.
Así que mi código se ejecuta como se esperaba.
Desafortunadamente, a Typescript no le gusta.
// data.flatMap lint error
export const transformData = (data: any[]) => data.flatMap(abc => [
parentObj(abc),
...generateTasks(abc)
]);
la advertencia que recibí es
TS2339: Property ''flatMap'' does not exist on type ''any[]''.
Por cierto, estoy usando
Angular 6
, que usa
Typescript ~2.9.2
y ya
import ''core-js/es7/array'';
En
polyfills.ts
.
Supongo que no hay que escribir para estos métodos, e
npm run -dev @types/array.prototype.flatmap
pero aún no
npm run -dev @types/array.prototype.flatmap
.
Debe agregar
esnext
o
esnext.array
a su configuración de
--lib
para que TypeScript reconozca
array.flat()
y
flatMap()
.
Ejemplo:
{
"compilerOptions": {
"target": "es5",
"lib": [
"esnext"
]
}
}
Puede extender la interfaz de matriz global mientras espera la estabilidad, momento en el que se agregará a la biblioteca predeterminada.
interface Array<T> {
flat(): Array<T>;
flatMap(func: (x: T) => T): Array<T>;
}