angular typescript

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>; }