无法在打字稿中使用点符号访问对象属性
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
我有一个对象正在从一个组件向另一个组件传递道具 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