Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- export interface IFighter {
- readonly _name: string;
- protected _health: number; // [ts] 'protected' modifier cannot appear on a type member.
- _power: number;
- health: () => number;
- name: () => string;
- setDamage: (damage: number) => void;
- hit: (enemy: Fighter, point: number) => void;
- knockout: () => Promise<any>;
- }
- export class Fighter implements IFighter { // Class 'Fighter' incorrectly implements interface 'IFighter'.
- // Property '_health' is protected in type 'Fighter' but public in type 'IFighter'.
- _name: string;
- protected _health: number;
- _power: number;
- constructor(name: string, health: number, power: number) {
- this._name = name;
- this._health = health;
- this._power = power;
- }
- health(): number {
- return this._health;
- }
- name(): string {
- return this._name;
- }
- setDamage(damage: number): void {
- this._health = this._health - damage;
- console.log(`${this._name} got ${damage} dmg. ${this._health}hp less`);
- }
- hit(enemy: Fighter, point: number): void {
- let damage: number = point * this._power;
- enemy.setDamage(damage);
- }
- knockout(): Promise<any> {
- return new Promise((resolve, reject) => {
- console.log("time is over");
- setTimeout(() => {
- resolve(() => {});
- }, 500);
- });
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement