/** * 用户信息类 * 封装用户信息相关的数据和操作方法 */ export class UserInfo { /** 用户积分数 */ public readonly points: number; /** 积分图标 */ public readonly pointsIcon: string; /** 是否有可领取任务 */ public readonly hasClaimableMissions: boolean; /** 用户昵称 */ public readonly nickname: string; /** 用户头像 */ public readonly avatar: string; /** 用户ID */ public readonly blogId?: number; constructor(data: { points: number; pointsIcon: string; hasClaimableMissions: boolean; nickname: string; avatar: string; blogId?: number; }) { this.points = data.points; this.pointsIcon = data.pointsIcon; this.hasClaimableMissions = data.hasClaimableMissions; this.nickname = data.nickname; this.avatar = data.avatar; this.blogId = data.blogId; } toJSON() { return { points: this.points, pointsIcon: this.pointsIcon, hasClaimableMissions: this.hasClaimableMissions, nickname: this.nickname, avatar: this.avatar, blogId: this.blogId }; } }