37 lines
789 B
TypeScript
37 lines
789 B
TypeScript
export class Hero {
|
|
static nextId = 1;
|
|
|
|
static MockHeroes = [
|
|
new Hero(
|
|
'Hercules',
|
|
'Son of Zeus',
|
|
new Date(1970, 1, 25),
|
|
'http://www.imdb.com/title/tt0065832/',
|
|
325),
|
|
|
|
new Hero('eenie', 'toe'),
|
|
new Hero('Meanie', 'Toe'),
|
|
new Hero('Miny', 'Toe'),
|
|
new Hero('Moe', 'Toe')
|
|
];
|
|
|
|
public id: number;
|
|
|
|
static clone({firstName, lastName, birthdate, url, rate, id}: Hero) {
|
|
return new Hero(firstName, lastName, birthdate, url, rate, id);
|
|
}
|
|
|
|
constructor(
|
|
public firstName: string,
|
|
public lastName?: string,
|
|
public birthdate?: Date,
|
|
public url?: string,
|
|
public rate = 100,
|
|
id?: number) {
|
|
|
|
this.id = id != null ? id : Hero.nextId++;
|
|
}
|
|
|
|
get fullName() { return `${this.firstName} ${this.lastName}`; }
|
|
}
|