【发布时间】:2019-11-24 00:08:13
【问题描述】:
这是我的篮球运动员类和 ITeam 和 IStats 接口:
export class Player {
id: string;
firstName: string;
lastName: string;
position: string;
team: ITeam;
stat: IStats;
get fullName(): string {
return this.firstName + " " + this.lastName;
}
}
export interface ITeam {
id: string;
abbreviation: string;
name: string;
city: string;
}
export interface IStats {
GP: number;
Min: number;
FGM: number;
FGA: number;
TPM: number;
TPA: number;
FTM: number;
FTA: number;
OR: number;
TR: number;
AS: number;
ST: number;
TO: number;
BK: number;
PF: number;
DQ: number;
PTS: number;
TC: number;
EJ: number;
FF: number;
Sta: number;
}
当我在组件中循环访问我的数据时,当我尝试使用 ERROR TypeError: Cannot set property 'abbreviation' of undefined 设置 player.team.abbreviation 属性时出错
createPlayer(playerArray) {
let player: IPlayer = new Player();
player.id = playerArray[0];
player.firstName = playerArray[1];
player.lastName = playerArray[2];
player.team.abbreviation = playerArray[3];
...
}
为什么 player.team 未定义?
【问题讨论】:
-
向 Player 类添加一个构造函数,将 team 和 stats 属性实例化为属性期望形状的对象。如果不实例化这些属性,它们是未定义的。
标签: angular typescript class interface