Take a look at the structure of my basketball Player class and the ITeam & IStats interfaces:
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;
}
I encountered an error while trying to set the player.team.abbreviation property in my component's data iteration, resulting in ERROR TypeError: Cannot set property 'abbreviation' of undefined
createPlayer(playerArray) {
let player: IPlayer = new Player();
player.id = playerArray[0];
player.firstName = playerArray[1];
player.lastName = playerArray[2];
player.team.abbreviation = playerArray[3];
...
}
What could be causing the player.team to be undefined?