TS 类型中不存在属性“flatMap”、“flat”

属性 ‘flatMap’, ‘flat’ 在 TS 类型中不存在

Property ‘flatMap’, ‘flat’ does not exist on type in TS

要解决“Property ‘flatMap’ or ‘flat’ does not exist on type”错误,请将字符串添加"es2019"到文件lib中的数组tsconfig.json,并确保您运行的是最新版本的 TypeScript。

打开你的tsconfig.json文件并添加
es2019到你的lib数组中。

tsconfig.json文件
{ "compilerOptions": { // ... other options "lib": [ // ... other libs "es2019" ] } }

这将解决错误,您将能够使用
flatMap

flat
方法。

索引.ts
// 👇️ using Array.flatMap const arr = ['one two', 'three four']; const result = arr.flatMap((str) => str.split(' ')); // 👇️ ['one', 'two', 'three', 'four'] console.log(result);

下面是使用该方法的示例Array.flat

索引.ts
// 👇️ using Array.flat const arr = [ ['a', 'b'], ['c', 'd'], ]; // 👇️ const flat: string[] const flat = arr.flat(); // 👇️ ['a', 'b', 'c', 'd'] console.log(flat);

更新你的版本typescript

如果您仍然无法使用该flatMap方法,请确保您
运行的是最新版本的 TypeScript

npm install -g typescript@latest npm install --save-dev typescript@latest
如果您使用 Angular.js,如果错误仍然存​​在,您可能需要更新您的版本。

使用replace代替flatMap

如果您仍然遇到错误,这里有一个示例,说明我如何在不使用flatMap.

索引.ts
const arr = ['one two', 'three four']; const result = arr.reduce<string[]>( (acc, curr) => acc.concat(splitOnSpace(curr)), [], ); console.log(result); // 👉️ ['one', 'two', 'three', 'four'] function splitOnSpace(str: string) { return str.split(' '); }

我们使用了reduce()方法并将其返回类型和变量类型设置accumulator为字符串数组 (
string[])。

split()在每次迭代中,我们将累积的数组连接到对字符串调用该方法的结果。

我还写了一篇关于
如何在 TS 中展平数组的详细指南。