打字稿误解了导入的JSON文件的接口.您如何修复它



我拥有的JSON文件看起来像这样:

[
  {
    "keys": [
      {
        "date": "2019-06-25T17:33:39.000Z"
      }
    ],
    "tag": null
  },
  {
    "keys": [],
    "tag": "stringvalue"
  }
]

由于第二个keys是一个空数组,在导入文件后,Typescript假定keys可以是any[]类型(因此,使keysany[] | IKeys[]类型,其中IKeyskeys的真实形状接口(。这禁止使用诸如Array.map()之类的方法,因为呼叫签名是不兼容的。

您如何修复此问题,以便该打字稿了解keys的真实接口?

这是一个沙盒示例。https://codesandbox.io/s/serene-kare-g7r5r

我还没有找到一种让打字稿自行弄清楚的方法,但是您总是可以自己抛弃它:

const keys = file.keys as { date: string}[]

最新更新