我正在使用 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 许可协议
You should add
es2019
ores2019.array
to your--lib
setting for TypeScript to recognizearray.flat()
andflatMap()
.例子:
以前它作为
esnext
或esnext.array
的一部分提供,但现在它正式成为 ES2019 的一部分。