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}`; }
 | |
| }
 |