// 클래스
class Department {
// 필드
// private readonly id: string;
// private name: string;
private employees: string[] = [];
// 생성자 (매개변수로 선언을 대체할 수 있음)
// readonly를 사용하면 생성자에서만 값을 할당할 수 있음
constructor(private readonly id: string, public name: string) {
//this.id = id;
//this.name = n;
}
// 메소드
// ``을 사용하면 ${}를 사용하여 변수를 사용할 수 있음
describe(this: Department) {
console.log(`Department (${this.id}): ${this.name}`);
}
addEmployee(employee: string) {
//this.id = 'd2'; // readonly이기 때문에 접근 불가능
this.employees.push(employee);
}
printEmployeeInformation() {
console.log(this.employees.length);
console.log(this.employees);
}
}
// 인스턴스 생성
const accounting = new Department('A1', 'Accounting');
accounting.addEmployee('Max');
accounting.addEmployee('Manu');
//accounting.employees[2] = 'Anna'; // private이기 때문에 접근 불가능
accounting.describe();
accounting.printEmployeeInformation();