属性 ‘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 中展平数组的详细指南。