如何将 TypeScript 与 Object.entries() 一起使用?

UK_*_*fka 7 javascript typescript

我最近开始在自己的项目中使用 TypeScript,尽管我不确定应该如何让我的代码正常工作。

Object.entries(data[`set_${id}`].tiles).map(([tileType, tiles]) => (
  tiles.map(([left, top]), index) => (
     //rest of code
  )
))
Run Code Online (Sandbox Code Playgroud)

TypeScript 抱怨 left、top 和 index 都有“any”类型。我该如何在此配置中分配类型?

data.json结构:

{
  "set_1": {
    "tiles": {
       "typeA": [[0, 1], [0, 2]],
       "typeB": [[2, 0], [2, 1]]
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

任何建议将不胜感激。

谢谢!

Pau*_*son 6

这对我来说最有效:

export function objectEntries<
  T extends Record<PropertyKey, unknown>,
  K extends keyof T,
  V extends T[K]
>(o: T) {
  return Object.entries(o) as [K, V][];
}
Run Code Online (Sandbox Code Playgroud)


小智 -1

您可以这样设置它们:

Object.entries(data[`set_${id}`].tiles).map(([tileType, tiles]) => (
  tiles.map(([left: number, top: number]), index: number) => (
     //rest of code
  )
))
Run Code Online (Sandbox Code Playgroud)