<aside> 💡 목차

</aside>

Employee 기본 클래스 생성

class Employee {
  // 속성: name (문자열)과 id (숫자)
  // 생성자를 사용하여 초기화
  // 메서드: displayInfo() 메서드 - 직원의 정보를 출력
}

정답

class Employee {
  constructor(
    public name: string,
    public id: number,
  ) {}
  displayInfo() {
    console.log(`Name: ${this.name}, Id: ${this.id}`);
  }
}

Manager 클래스 생성

Employee 클래스를 확장

class Manager extends Employee {
  // 추가 속성: subordinates (Employee 배열)
  // 부모 클래스의 생성자를 호출
  // 메서드: addSubordinate(employee: Employee) 메서드 - 하위 직원을 목록에 추가  
  // 메서드: listSubordinates() - 모든 하위 직원의 정보를 출력  
}

정답

class Manager extends Employee {
  private subordinates: Employee[] = [];
  constructor(name: string, id: number) {
    super(name, id);
  }
  addSubordinate(employee: Employee) {
    this.subordinates.push(employee);
  }
  listSubordinates(): void {
    console.log(`Manager: ${this.name}`);
    this.subordinates.forEach((emp) => emp.displayInfo());
  }
}

사용 및 출력

const managerA = new Manager('테드', 1);
const emp1 = new Employee('찰리', 2);
const emp2 = new Employee('마이클', 3);

managerA.addSubordinate(emp1);
managerA.addSubordinate(emp2);
managerA.listSubordinates();
// Manager: 테드
// Name: 찰리, Id: 2
// Name: 브라운, Id: 3

privatepublictypescript객체지향프로그래밍접근제한자타입스크립트