无法在打字稿中使用点符号访问对象属性

Unable to access object properties with dot notation in typescript

我有一个对象正在从一个组件向另一个组件传递道具 playerSystem。 这是 playerSystem 记录到控制台。

sector: {
{
cords: "A-6450"
systemName: "A-79672"
systemPlanets: (8) ['Ocean', 'Rocky', 'Gas', 'Temperate', 'Gas', 'Frozen', 'Lava', 'Frozen']
systemStar: "Red-Dwarf"
}
}

这正在记录到控制台,所以我知道数据没有问题。 我想使用 systemName 之类的属性访问 sector 的内部对象,所以我正在尝试这样做

 useEffect(() => {
        console.log(playerSystem.systemName)
        console.log(playerSystem.sector)
    }, [])

这两个都抛出相同的错误,Property 'systemName'/'sector' does not exist on type 'Object'.
如何访问对象的嵌套属性?

你必须依赖 playerSystem 进入 useEffect

 useEffect(() => {
        console.log(playerSystem.systemName)
        console.log(playerSystem.sector)
    }, [playerSystem])

尝试表示组件正在接收的 playerSystem 道具的类型,只有这样 ts 才能知道该对象上存在的属性。

type sectorType = {
 systemStar: string,
 systemPlanets: string[],
 systemName: string,
 cords: string
};
interface playerSystemProps {
  playerSystem: sectorType;
  setPlayerSystem: Function;
}

以防以后有人看到。我的问题是我的对象实际上是一个数组。它是 [{data.subdata}] 所以我无法使用点符号,除非我 data[0].subdata