#angular #typescript #interface
Вопрос:
Это моя модель:
export interface IUser{
id: number;
firstName: string;
lastName: string;
accounts?:
{
userID: number;
accType: AccType;
badges: Badge[];
accountStatus: AccStatus;
}[];
}
В моем файле user.service.ts я инициализирую пользователя перед его использованием в службах HTTP. Но, похоже, я не могу правильно инициализировать учетные записи, так как не могу получить доступ к их значениям.
private initializeUser(): IUser{
return {
id:0,
firstName: null as any,
lastName: null as any,
accounts:{
userID: null as any,
accType: null as any,
badges: null as any,
accountStatus: null as any
}
};
}
Кроме того, я думаю, что, поскольку значки представляют собой массив, я также неправильно их инициализирую.
Ответ №1:
Я бы предложил сделать идентификаторы факультативными. Это позволит вам узнать, является ли пользователь новым или нет.
export interface IUser {
id?: number;
firstName: string;
lastName: string;
accounts?:
{
userID?: number;
accType: AccType | null;
badges: Badge[];
accountStatus: AccStatus | null;
}[];
}
private initializeUser(): IUser{
return {
firstName: '',
lastName: '',
accounts:[{ // Don't forget the [...], it's an array
accType: null,
badges: [],
accountStatus: null
}]
};
}
Ответ №2:
private initializeUser(): IUser{
return {
id:0,
firstName: null as string,
lastName: null as string,
accounts:{
userID: null as number,
accType: null as accType,
badges: null as Badge[],
accountStatus: null as AccStatus
}
};
}