打字稿错误:类型'[字符串,未知] []'不存在属性'flat'

时间:2020-06-11 12:30:25

标签: javascript reactjs typescript

我需要在数组上使用.flat(),但Typescript声称:

类型'[string,unknown] []'不存在属性'flat'

我在tsconfig文件中添加了“ es2019”:

    "lib": ["es2015", "es2019", "dom"],

使用flat()的函数是:

const legendSeries = (series) => {
    const formattedSeries = {};
    series.map((serie) =>
      Object.entries(serie).map((s) => {
        if (s[0] in formattedSeries) {
          return (formattedSeries[s[0]].count += s[1]);
        }
        return (formattedSeries[s[0]] = { id: s[0], label: s[0], count: s[1] });
      })
    );
    return Object.entries(formattedSeries)
      .flat()
      .filter((_, i) => i % 2 !== 0);
  };

错误仍然存​​在。如何解决这个问题(如果有帮助的话,这是一个React项目)?

2 个答案:

答案 0 :(得分:1)

我认为这个问题是因为打字稿无法访问array.flat(),在这种情况下,它将抛出一个不了解flat()的错误,如@codejockie所述。您需要像这样更新配置文件 { "compilerOptions": { "target": "es5", "lib": [ "es2019" ] } }

我们需要在T​​ypeScript的--lib设置中添加es2019或es2019.array,以便它开始识别array.flat()和flatMap()。

进行更改后。如果更改没有反应,请重新启动项目。

答案 1 :(得分:0)

将您的conn, addr = s.accept()更新为此lib

这是我的配置:

"lib": ["es2019", "es2017", "es7", "es6", "dom"]