Angular에서 class다루기
Angular에서 class다루기
angular에서는 @Inject, @Injectable을 이용하여 new 키워드 없이 class들을 상속 받을 수 있다.
하지만 여기서는 new 키워드를 사용한 class의 상속 개념에 대해 다루어 보겠습니다.
angular라로 project 특히 game관련 project를 다루다 보면 상속 받아서 처리하는 것이 유용한 경우가 있는데 아래는 간단한 예입니다. 여기서는 warrior를 생성하고 이것은 player라는 클래스를 상속받는 개념입니다.
- player.ts
export default class Player {
constructor(
id: any, name: string, kind: any
) {
}
}
- worrior.ts
import Player from './player';
export default class Warrior extends Player {
constructor(
id: string, name: string
) {
super(id, name, Types.Entities.WARRIOR);
// Player의 constructor에 값을 넘길 경우 super 를 사용한다.
// super의 인자값과 Player의 constructor의 값의 인자값은 동일하여야 한다.
}
}
- game.ts
import Warrior from './warrior';
export class Game {
constructor(
) {
this.player = new Warrior('player', '');
if (this.player entity instanceof Player) { // 이렇게 하여 어느 instance를 상속받았는지 확인도 가능합
}
}
}