TypeScript에서 OOP 접근자
순수 JavaScript와 마찬가지로, TypeScript에서도 속성의 접근자(게터와 세터)를 만들 수 있습니다.
그러나 TypeScript에서는 접근자의 이름이 속성의
이름과 동일해서는 안 됩니다. 실제로 살펴보겠습니다.
비공개 속성 name에 대한 접근자를 만들어 봅시다.
접근자의 이름도 name로 지정하면 다음과 같은
코드는 오류를 발생시킵니다:
class User {
private name: string = '';
public set name(name: string) { // 오류를 발생시킴
this.name = name;
}
public get name(): string {
return this.name;
}
}
예를 들어 비공개 속성의 이름을 바꾸어 문제를 해결해 보겠습니다:
class User {
private _name: string = '';
public set name(name: string) {
this._name = name;
}
public get name(): string {
return this._name;
}
}
이름과 나이를 포함하는 비공개 속성을 가진
User 클래스를 만드세요. 이 속성들의
접근자를 만드세요.
나이를 0부터 120까지 설정할 수
있도록 나이 세터를 수정하세요. 다른 값이
지정되면 예외가 발생해야 합니다.