728x90
생성자(Constructor)
class Employee {
fullName: string;
age: number;
jobTitle: string;
hourlyRate: number;
workingHoursPerWeek: number;
printEmployeeInfo = (): void => {
console.log(`${this.fullName}의 직업은 ${this.jobTitle} 이고 일주일의 수업은 ${this.hourlyRate*this.workingHoursPerWeek} 달러 이다.`)
}
}
let employee1 = new Employee();
employee1.fullName = 'Cine';
employee1.age = 20;
employee1.jobTitle = 'developer';
employee1.hourlyRate = 40;
employee1.workingHoursPerWeek = 35;
employee1.printEmployeeInfo();
위의 코드는 객체가 class를 통해서 만들어지고 그후에 객체 프로퍼티를 따로따로 할당해 주었는데요.
이러면 코드가 복잡해지는 단점이 있습니다.
생성자를 이용하면 이런 단점이 해결될수도 있습니다.
모든 class는 Constrictor(생성자)라고 하는 메서드를 가질수가 있는데요.
생성자는 클래스로부터 객체를 생성할 때 즉시 호출됩니다.
일종의 객체의 초기화를 담당한다고 볼 수 있습니다.
class Employee {
fullName: string;
age: number;
jobTitle: string;
hourlyRate: number;
workingHoursPerWeek: number;
constructor(fullName: string, age: number, jobTItle: string, hourlyRate: number, workingHoursPerWeek: number){
this.fullName = fullName;
this.age = age;
this.jobTitle = jobTItle;
this.hourlyRate = hourlyRate;
this.workingHoursPerWeek = workingHoursPerWeek;
}
printEmployeeInfo = (): void => {
console.log(`${this.fullName}의 직업은 ${this.jobTitle} 이고 일주일의 수업은 ${this.hourlyRate*this.workingHoursPerWeek} 달러 이다.`)
}
}
let employee2 = new Employee('Cine', 20, 'developer', 40, 35);
employee2.printEmployeeInfo();
이처런 constructor키워드를 사용하여 파라미터를 받아주고 생성자 내에서 this 키워드를 이용해 파라미터로 받은 값들은 내부에 할당해줄수 있습니다.
이런 생성자가 있으면 new 키워드로 객체를 생성할때 생성할 객체의 설계도인 class의 인자를 받아주면 바로 프로퍼티의 값이 할당됩니다.
728x90
'TS 관련 > TypeScript' 카테고리의 다른 글
[TypeScript] Intersection Type(인터섹션 타입) (0) | 2022.07.21 |
---|---|
[TypeScript] 접근 제한자(Access Modifiers), Getter와 Setter (0) | 2022.07.20 |
[TypeScript] Class와 객체(OOP 프로그래밍) (0) | 2022.07.18 |
[TypeScript] 옵셔널(optional) ?, 선택적 매개변수 (0) | 2022.07.17 |
[TypeScript] Union Type(유니언 타입), Type Alias, 타입가드 (0) | 2022.07.16 |